SQL server 2008建立觸發器例項

2021-09-27 09:03:50 字數 1215 閱讀 7053

觸發器定義以及分類:

觸發器是一種特殊型別的儲存過程,它不同於之前的我們介紹的儲存過程。觸發器主要是通過事件進行觸發被自動呼叫執行的。而儲存過程可以通過儲存過程的名稱被呼叫。

ø 什麼是觸發器

觸發器對錶進行插入、更新、刪除的時候會自動執行的特殊儲存過程。觸發器一般用在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;

gocreate trigger triger_students_insert

on students

for insert

asdeclare @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')

直接就不讓插入資料,和約束條件也是相類似的 。

SQL SERVER 2008 建立觸發器

sqlserver觸發器內insert,update,delete三種狀態 create trigger tri product ordersnapshot on t product for insert,update,delete 如if exists select from inserted a...

SQL server2008獲取建立表裡各列的屬性

select 表名 case when a.colorder 1 then d.name else end,表說明 case when a.colorder 1 then isnull f.value,else end,字段序號 a.colorder,欄位名 a.name,標識 case when ...

sqlserver2008 建立定時任務

sql2008如何建立定時作業?此方法也適應於sql server2005資料庫,有興趣的可以來看下!1.開啟 sql server management studio 在 物件資源管理器 列表中選擇 sql server 2.滑鼠右擊 sql server 選擇 啟動 s 如已啟動,可以省略此步驟...