【问题标题】:Where does a Server trigger save in SQL Server?服务器触发器保存在 SQL Server 中的什么位置?
【发布时间】:2010-10-01 21:49:26
【问题描述】:

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

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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

    服务器触发器

    你可以在这里看到它们

    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”->“可编程性”->“数据库触发器”节点下

    【讨论】:

    • 普通触发器的主体存储在 sys.sql_modules 中。服务器触发器的主体存储在哪里?
    • @zespri sys.server_sql_modules
    • @MartinSmith,是的,谢谢,在输入问题大约十秒后找到它。
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-28
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      相关资源
      最近更新 更多