Практическая лабораторная работа №1


Задание к практической работе №11


Download 3.23 Mb.
Pdf ko'rish
bet185/207
Sana16.11.2023
Hajmi3.23 Mb.
#1778259
TuriУчебно-методическое пособие
1   ...   181   182   183   184   185   186   187   188   ...   207
Bog'liq
курс лаб по SQL 2008

Задание к практической работе №11 
Задание 1. Создать таблицу authsmall из таблицы authors базы данных Pubs и для 
новой таблицы запрограммировать триггер auth_del, который будет выводить 
информацию о попытках удаления и количестве удаляемых строк, выполнив действия: 
1. Создание таблицы authsmall c колонками au_id, au_fname, au_lname, phone и 
копирование в нее данных из таблицы authors: 
SELECT au_id, au_fname, au_lname, phone 
INTO authsmoll 
FROM authors 
PRINT ‘Содержимое таблицы authsmoll:’ 
SELECT * FROM authsmall 
2. Создание и программирование триггера: 
CREATE TRIGGER auth_del 
ON authsmall 
FOR DELETE 
AS 
PRINT ‘Попытка удаления’ + STR (@@ POWCOUNT)+ 


178 
‘строк в таблице authsmall’ 
PRINT ‘Пользователь’ + CURRENT_USER 
IF CURRENT_USER <> ‘dbo’ 
BEGIN 
PRINT ‘Удаление запрещено’ 
ROLLBACK TRANSACTION 
END 
ELSE 
PRINT ‘Удаление разрешено’ 
3. Тестирование триггера : 
DELETE FROM authsmall WHERE au_fname = ‘Johnson’ 
DELETE FROM authsmall WHERE 2*2=5 
Задание 2. Создать триггер auth_upd для таблицы authsmall, построенный в первом 
задании, который будет разрешать изменение столбца au_id этой таблицы всем, кроме 
владельца dbo, выполнив следующие действия: 
1. Создание и программирование триггера: 
CREATE TRIGGER auth_upd 
ON authsmall 
FOR UPDATE 
AS 
SET NOCOUNT ON -- не сообщать о завершении команд; 
PRINT ‘Попытка изменения данных в таблице authsmall’ 
IF (COLUMNS_UPDATE () &1)! = 0 -- 1-й столбец; 
PRINT ‘Изменение столбца au_id’ 

Download 3.23 Mb.

Do'stlaringiz bilan baham:
1   ...   181   182   183   184   185   186   187   188   ...   207




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling