首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何获取数据库中的活动触发器列表?

如何获取数据库中的活动触发器列表?
EN

Stack Overflow用户
提问于 2012-03-09 12:46:23
回答 9查看 69.6K关注 0票数 14

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

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

一些自定义包括:新表、修改后的表、自定义视图、自定义触发器.

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

无论如何,我想自动禁用所有触发器(这些触发器已经启用,可能有些已经禁用),然后在结束时重新启用它们。

不是为了重新创造号角,是怎么做的?

如何只获取当前db?上的活动触发器

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

代码语言:javascript
复制
DISABLE TRIGGER triggername ON TABLENAME

ENABLE TRIGGER triggername ON TABLENAME
EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-03-09 12:59:39

代码语言:javascript
复制
select objectproperty(object_id('TriggerName'), 'ExecIsTriggerDisabled') 

1表示真,0明显表示假。

使用Jeff O的查询并稍微修改一下

代码语言:javascript
复制
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子句。

代码语言:javascript
复制
where TRIG.is_disabled = 0 -- or 1 depends on what you want
票数 21
EN

Stack Overflow用户

发布于 2012-03-09 12:57:47

代码语言:javascript
复制
SELECT *
FROM sys.triggers
WHERE is_disabled = 0
票数 13
EN

Stack Overflow用户

发布于 2012-03-09 13:02:12

代码语言:javascript
复制
SELECT 
       TAB.name as Table_Name
     , TRIG.name as Trigger_Name  
FROM [sys].[triggers] as TRIG
inner join sys.tables as TAB
on TRIG.parent_id = TAB.object_id
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9634281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档