Server触发器在SQL Server中保存在哪里?

时间:2010-10-01 21:49:26

标签: sql-server sql-server-2005 triggers

几天前,我正在练习,我写了一些像这样的触发器:

create trigger trg_preventionDrop
on all server 
for drop_database
as
print 'Can not Drop Database'
rollback tran

go 

create trigger trg_preventDeleteTable
on database
for drop_table
as 
print 'you can not delete any table'
rollback tran

但问题是我不知道它保存在哪里以及如何删除或编辑它们。

谢谢

2 个答案:

答案 0 :(得分:11)

服务器触发

你可以在这里看到它们

select * from sys.server_triggers

要删除使用此语法

drop trigger trg_preventionDrop on all server 

在Management Studio中,它们位于“服务器对象”下 - > “触发器”节点

数据库触发

你可以在这里看到它们

select * from yourdb.sys.triggers

要删除使用此语法

drop trigger trg_preventDeleteTable on database

在Management Studio中,它们位于“数据库”下 - > “yourdb” - > “可编程性” - > “数据库触发器”节点

答案 1 :(得分:3)

特定表上的触发器位于“DataBase” - > “YourDb” - > “YourTable” - > Management Studio中的“触发器”文件夹

也可以通过执行以下sql在特定表上找到触发器:
EXEC sp_helptrigger yourtablename