gpt4 book ai didi

sql-server - 如何获取数据库上的事件触发器列表?

转载 作者:行者123 更新时间:2023-12-02 11:27:01 25 4
gpt4 key购买 nike

我的应用程序基于 sql server db。

除定制外,所有客户都具有相同的数据库。

一些自定义包括:新表、修改表、自定义 View 、自定义触发器...

当我运行软件更新时,会执行一些脚本。现在我手动禁用触发器并在脚本完成后重新启用。

无论如何,我想自动禁用所有触发器(已启用,可能其中一些可能已经被禁用),然后在最后重新启用它们。

不重新发明轮子,如何做到这一点?

如何仅获取当前数据库上的事件触发器?

一旦我得到这个,我就可以以编程方式创建和运行

DISABLE TRIGGER triggername ON TABLENAME

ENABLE TRIGGER triggername ON TABLENAME

最佳答案

select objectproperty(object_id('TriggerName'), 'ExecIsTriggerDisabled') 

1 表示真,0 明显表示假

使用 Jeff O 的查询并稍微修改一下
SELECT  
TAB.name as Table_Name
, TRIG.name as Trigger_Name
, TRIG.is_disabled --or objectproperty(object_id('TriggerName'), 'ExecIsTriggerDisabled')
FROM [sys].[triggers] as TRIG
inner join sys.tables as TAB
on TRIG.parent_id = TAB.object_id

或将其添加为 where 子句。
where TRIG.is_disabled = 0 -- or 1 depends on what you want

关于sql-server - 如何获取数据库上的事件触发器列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com