ВУЗ:
Составители:
Рубрика:
ELSE
PRINT ‘Удаление разрешено’
Для тестирования триггера можно попытаться выполнить команды удаления
строк из таблицы и проверить полученные результаты.
DELETE FROM AUTHSMALL WHERE AU_FNAME = ‘JOHNSON’
DELETE FROM authsmall WHERE 2*2=5
Задание 1.7.2. Создать триггер auth_upd для таблицы authsmall, построенный в
первом задании, который будет разрешать изменение столбца au_id этой таблицы
всем, кроме владельца dbo.
Создание и программирование триггера можно выполнить следующим образом:
CREATE TRIGGER auth_upd
ON authsmall
FOR UPDATE
AS
SET NOCOUNT ON -- не сообщать
о завершении команд;
PRINT ‘Попытка изменения данных в таблице authsmall’
IF (COLUMNS_UPDATE () &1)! = 0 -- 1-й столбец;
PRINT ‘Изменение столбца au_id’
IF (COLUMNS_UPDATE () &2)! = 0 -- 2-й столбец;
PRINT ‘Изменение столбца au_fname’
IF (COLUMNS_UPDATE () &4)! = 0 -- 3-й столбец;
PRINT ‘Изменение столбца au_lname’
IF UPDATE (Phone)
PRINT ‘Изменение столбца phone’
IF ((CURRENT_USER = ‘dbo’) AND
(COLUMNS_UPDATED()&1)! = 0 -- 1-ый стлбец;
BEGIN
PRINT ‘Пользователь dbo не может изменять’ + ‘идентификационный
номер автора’
ROLLBACK TRANSACTION
END
Для тестирования триггера можно попытаться выполнить команды
модификации строк из таблицы и проверить полученные результаты.
UPDATED authsmall SET phone =‘415 986 - 7020’, au_fname = ‘John’
WHERE au_lname = ‘Green’
UPDATED authsmall SET phone =‘913 843 - 7302’, au_id = ‘748-126859’
WHERE au_lname = ‘Smith’
ELSE
PRINT ‘Удаление разрешено’
Для тестирования триггера можно попытаться выполнить команды удаления
строк из таблицы и проверить полученные результаты.
DELETE FROM AUTHSMALL WHERE AU_FNAME = ‘JOHNSON’
DELETE FROM authsmall WHERE 2*2=5
Задание 1.7.2. Создать триггер auth_upd для таблицы authsmall, построенный в
первом задании, который будет разрешать изменение столбца au_id этой таблицы
всем, кроме владельца dbo.
Создание и программирование триггера можно выполнить следующим образом:
CREATE TRIGGER auth_upd
ON authsmall
FOR UPDATE
AS
SET NOCOUNT ON -- не сообщать о завершении команд;
PRINT ‘Попытка изменения данных в таблице authsmall’
IF (COLUMNS_UPDATE () &1)! = 0 -- 1-й столбец;
PRINT ‘Изменение столбца au_id’
IF (COLUMNS_UPDATE () &2)! = 0 -- 2-й столбец;
PRINT ‘Изменение столбца au_fname’
IF (COLUMNS_UPDATE () &4)! = 0 -- 3-й столбец;
PRINT ‘Изменение столбца au_lname’
IF UPDATE (Phone)
PRINT ‘Изменение столбца phone’
IF ((CURRENT_USER = ‘dbo’) AND
(COLUMNS_UPDATED()&1)! = 0 -- 1-ый стлбец;
BEGIN
PRINT ‘Пользователь dbo не может изменять’ + ‘идентификационный
номер автора’
ROLLBACK TRANSACTION
END
Для тестирования триггера можно попытаться выполнить команды
модификации строк из таблицы и проверить полученные результаты.
UPDATED authsmall SET phone =‘415 986 - 7020’, au_fname = ‘John’
WHERE au_lname = ‘Green’
UPDATED authsmall SET phone =‘913 843 - 7302’, au_id = ‘748-126859’
WHERE au_lname = ‘Smith’
Страницы
- « первая
- ‹ предыдущая
- …
- 109
- 110
- 111
- 112
- 113
- …
- следующая ›
- последняя »
