SQL server 2008建立觸發器例項
觸發器定義以及分類:
觸發器是一種特殊型別的儲存過程,它不同於之前的我們介紹的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。
Ø 什麼是觸發器
觸發器對錶進行插入、更新、刪除的時候會自動執行的特殊儲存過程。觸發器一般用在check約束更加複雜的約束上面。觸發器和普通的儲存過程的區別是:觸發器是當對某一個表進行操作。諸如:update、insert、delete這些操作的時候,系統會自動呼叫執行該表上對應的觸發器。SQL Server 2005中觸發器可以分為兩類:DML觸發器和DDL觸發器,其中DDL觸發器它們會影響多種資料定義語言語句而激發,這些語句有create、alter、drop語句。
下面介紹一個觸發器insert 插入時會觸發的:
先在資料庫上面建立一個學生表:
create table students
(
ID int not null,
name char(10),
age char(2),
city varchar(12),
)
現在定義AGE年齡欄位插入資料值超過20時會觸發觸發器不讓操作。
下面是示例程式碼:
IF OBJECT_ID (N'TRIGER_Students_Insert', N'tr') IS NOT NULL
DROP TRIGGER TRIGER_Students_Insert;
GO
CREATE TRIGGER TRIGER_Students_Insert
ON Students
FOR INSERT
AS
declare @age int
select @age=Students.Age FROM Students INNER JOIN inserted ON Students.ID =inserted.ID
PRINT @age
if(@age<20)
begin
raiserror('學生年齡必須要大於20哦',20,8)
rollback tran
end
這樣我們插入資料試試:
INSERT INTO Students(ID,Name,Age,City) VALUES(106,'張飛',14,'BeiJing')
直接就不讓插入資料,和約束條件也是相類似的 。