sys.triggers

sys.triggers

概述,列說明,套用示例,

概述

sys.triggers是sqlserver2005版本中新增一個目錄視圖,它存儲了當前資料庫中的所有觸發器信息,在功能上大致和sqlserver2005之前版本的select * from sysobjects where xtype='tr'的功能一樣。

列說明

列名數據類型說明
name
sysname
觸發器名稱。DML 觸發器名稱的架構範圍。DDL 觸發器名稱的作用域取決於父實體。
object_id
int
對象標識號。在資料庫中是唯一的。
parent_class
tinyint
觸發器的父類。
0 = DDL 觸發器的資料庫。
1 = DML 觸發器的對象或列。
parent_class_desc
nvarchar(60)
觸發器的父類的說明。
DATABASE
OBJECT_OR_COLUMN
parent_id
int
觸發器的父實體的 ID,如下所示:
0 = 父實體為資料庫的觸發器。
對於 DML 觸發器,此值為定義了 DML 觸發器的表或視圖的 object_id。
type
char(2)
對象類型:
TA = 程式集 (CLR) 觸發器
TR = SQL 觸發器
type_desc
nvarchar(60)
對象類型的說明。
CLR_TRIGGER
SQL_TRIGGER
create_date
datetime
觸發器的創建日期。
modify_date
datetime
上次使用 ALTER 語句修改對象的日期。
is_ms_shipped
bit
由內部 SQL Server 2005 組件代表用戶創建的觸發器。
is_disabled
bit
觸發器被禁用。
is_not_for_replication
bit
觸發器是作為 NOT FOR REPLICATION 創建的。
is_instead_of_trigger
bit
1 = INSTEAD OF 觸發器。
0 = AFTER 觸發器。

套用示例

1,利用sql查詢資料庫中所有的觸發器
select * from sys.triggers
2,設定資料庫中觸發器的招待順序
可利用sp_settriggerorder來設定觸發器的執行順序
例:設定insert觸發器ti_Detail為第一個執行的觸發器
sp_settriggerorder 'ti_Detail','first','insert'
3,刪除資料庫中所有觸發器示例
declare @sql varchar(1000)
declare @triggername varchar(100)
declare result_cur cursor local for
select name from sys.triggers
open result_cur
fetch next from result_cur into @triggername
while @@fetch_status=0
begin
set @sql='drop trigger '+@triggername
exec(@sql)
fetch next from result_cur into @triggername
end
close result_cur
deallocate result_cur

相關詞條

熱門詞條

聯絡我們