Sql Server觸發器的應用。本站提示廣大學習愛好者:(Sql Server觸發器的應用)文章只能為提供參考,不一定能成為您想要的結果。以下是Sql Server觸發器的應用正文
對表的操作
Inserted邏輯表
Deleted邏輯表
增長記載(insert)
寄存增長的記載
無
刪除記載(delete)
無
寄存被刪除的記載
修正記載(update)
寄存更新後的記載
寄存更新前的記載
3、for、after、instead of觸發器
after:觸發器在觸發它們的語句完成後履行。假如該語句因毛病而掉敗,觸發器將不會履行。不克不及為視圖指定after觸發器,只能為表指定該觸發器。可認為每一個觸發操作(insert、update、delete)指定多個after觸發器。假如表有多個after觸發器,可以使用sp_settriggerorder界說哪一個after觸發器最早激起,哪一個最初激起。除第一個和最初一個觸發器外,一切其他的after觸發器的激起次序不肯定,而且沒法掌握。
for:同等於after
instead of:該觸發器取代觸發操作履行。可在表和視圖上指定instead of觸發器。只能為每一個觸發操作(insert、update、delete)界說一個instead of觸發器。instead of觸發器可用於對insert和update語句中供給的數據值履行加強的完全性檢討。
4、 觸發器的應用
1、創立觸發器:
create trigger trigger_name
on {table_name | view_name}
{for| After | Instead of }
[ insert, update,delete ]
as
sql_statement
2、刪除觸發器:
drop trigger trigger_name
3、檢查數據庫中已有的觸發器:
select * from sysobjects where xtype='TR'
4、檢查單個觸發器:
exec sp_helptext '觸發器名'
5、修正觸發器:
alter trigger trigger_name
on {table_name | view_name}
{for| After | Instead of }
[ insert, update,delete ]
as
sql_statement
5、觸發器的實例
1、在Orders表中樹立觸發器,當向Orders表中拔出一筆記錄時,檢討goods表的貨物狀況status能否為1。是,則不克不及往Orders表參加該定單。
if (object_id('tgr_orders_insert', 'tr') is not null)end