триггеры

Триггер – это процедура, которая вызывается событием, а не пользователем, при вставке новой строки или при обновлении данных или при удалении данных.
Синтаксис
--создание триггера
CREATE TRIGGER имя_триггера ON имя_таблицы
INSTEAD OF | FOR | AFTER    UPDATE | INSERT | DELETE
AS
BEGIN
 --инструкции
END
GO
 
--модификация триггера
ALTER TRIGGER имя_триггера ON имя_таблицы
INSTEAD OF | FOR | AFTER    UPDATE | INSERT | DELETE
AS
BEGIN
 --инструкции
END
GO
 
--удаление триггера
DROP TRIGGER имя_триггера
 
--отключение триггера
DISABLE TRIGGER имя_триггера ON имя_таблицы
 
--включение триггера
ENABLE TRIGGER имя_триггера ON имя_таблицы
 
Скрыть

Показать

Копировать
  Script.sql  
--создание базы
CREATE DATABASE zzz
GO
 
--выбор базы
USE zzz
GO
 
--создание таблицы
CREATE TABLE Book (
 IDBook INT NOT NULL PRIMARY KEY IDENTITY(1, 1),
 Name NVARCHAR(50) NOT NULL,
 Amount INT NOT NULL,
 Price MONEY NOT NULL,
 --это поле должен автоматически заполнять триггер
 DateInsert DATETIME NULL
)
GO
 
--создание триггера
CREATE TRIGGER myTrigger ON Book
INSTEAD OF INSERT 
AS
BEGIN
 /*при вставке данных, автоматически должно
 заполняться поле DateInsert*/ 
 INSERT INTO Book(Name, Amount, Price, DateInsert) 
 SELECT Name, Amount, Price, (CAST(CURRENT_TIMESTAMP AS DATETIME))
 FROM inserted
END
GO
 
--вставка данных
INSERT INTO Book(Name, Amount, Price) VALUES
(N'Азбука', 10, 10.15)
 
--вывод данных
SELECT Name, Amount, Price, DateInsert FROM Book