ВУЗ:
Составители:
Рубрика:
{[DELETE] [,] [INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не для репликации;
AS sql_statement […n] -- тело триггера;
}
|
{{FOR\AFTER\INSTEAD OF}
{[INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не длярепликации;
AS {IF UPDATE (column) -- при изменении столбца;
[{AND\OR}UPDATE (column) […n]]}-- тоже;
|
IF (COLUMNS_UPDATED() {bitwise_operator}
Update_bitmask)
{comparison_operator}column_bitmask […n]
}
sql_statement […n] -- тело триггера.
}
}
Вторая альтернатива команды {IF UPDATE…} используется для детального анализа
изменений содержимого колонок с помощью специальных функций, битовых масок, операторов
побитовой обработки, оператор сравнения и логических операторов.
Команда ALTER TRIGGER позволяет изменить параметры и тело триггера. С помощью
команды DROP TRIGGER можно удалть любой триггер базы данных. Переименовать триггер
можно системной хранимой процедурой sp_rename, а получить информацию о триггере можно
при помощи системных хранимых процедур sp_helptext и sp_helptrigger.
Внутри триггера допускается использование любых команд языка Transact – SQL с
некоторыми ограничениями. Также допускается и вызов хранимых процедур, включая системные.
Задание 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)+
‘строк в таблице authsmall’
PRINT ‘Пользователь’ + CURRENT_USER
IF CURRENT_USER <> ‘dbo’
BEGIN
{[DELETE] [,] [INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не для репликации;
AS sql_statement […n] -- тело триггера;
}
|
{{FOR\AFTER\INSTEAD OF}
{[INSERT] [,] [UPDATE]}
[WITE APPEND] -- только для версий 6.5 и ниже;
[NOT FOR REPLICATION] -- не длярепликации;
AS {IF UPDATE (column) -- при изменении столбца;
[{AND\OR}UPDATE (column) […n]]}-- тоже;
|
IF (COLUMNS_UPDATED() {bitwise_operator}
Update_bitmask)
{comparison_operator}column_bitmask […n]
}
sql_statement […n] -- тело триггера.
}
}
Вторая альтернатива команды {IF UPDATE…} используется для детального анализа
изменений содержимого колонок с помощью специальных функций, битовых масок, операторов
побитовой обработки, оператор сравнения и логических операторов.
Команда ALTER TRIGGER позволяет изменить параметры и тело триггера. С помощью
команды DROP TRIGGER можно удалть любой триггер базы данных. Переименовать триггер
можно системной хранимой процедурой sp_rename, а получить информацию о триггере можно
при помощи системных хранимых процедур sp_helptext и sp_helptrigger.
Внутри триггера допускается использование любых команд языка Transact – SQL с
некоторыми ограничениями. Также допускается и вызов хранимых процедур, включая системные.
Задание 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)+
‘строк в таблице authsmall’
PRINT ‘Пользователь’ + CURRENT_USER
IF CURRENT_USER <> ‘dbo’
BEGIN
Страницы
- « первая
- ‹ предыдущая
- …
- 53
- 54
- 55
- 56
- 57
- …
- следующая ›
- последняя »
