sql 在SQL数据库中将所有触发器设置为Diabled或Enabled

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 在SQL数据库中将所有触发器设置为Diabled或Enabled相关的知识,希望对你有一定的参考价值。

Disable Enable All Triggers 


 DECLARE   @maxid   INT  
 DECLARE   @string varchar(8000)  
 DECLARE   @tbname varchar(100)  
 DECLARE   @trname varchar(100)  
 DECLARE   @   CHECK    BIT  

 SET   @   CHECK    =   0   -- zero for disable / one for enable triggers  

 IF   EXISTS   (SELECT   *   FROM tempdb..sysobjects WHERE   NAME   =    '##trtemp'    AND   xtype   =   'u'   )  
 DROP    TABLE    ##   trtemp  

 CREATE    TABLE    ##   trtemp (trid   INT    IDENTITY   (1,1),   TABLE_NAME   varchar(200))  
 INSERT INTO    ##   trtemp   SELECT    NAME    AS   tbname   FROM   sysobjects   WHERE   id   IN   (SELECT parent_obj FROM sysobjects WHERE xtype   =   'tr'   )  

 SELECT   @maxid   =   MAX   (trid)   FROM    ##   trtemp  
 WHILE (@maxid   >=   1)  
 BEGIN  
     SELECT   @tbname   =   TABLE_NAME    FROM    ##   trtemp   WHERE   trid   =   @maxid  
    
  IF @   CHECK   =   0  
      SET   @string   =    'ALTER TABLE ['    +   @tbname   +    '] DISABLE TRIGGER ALL'  
  IF @   CHECK   =   1  
      SET   @string   =    'ALTER TABLE ['    +   @tbname   +    '] ENABLE TRIGGER ALL'  

     EXEC   (@string)  
  PRINT @string  
     SET   @maxid   =   @maxid   -   1  
 END  

 IF @   CHECK   =   0  
     SELECT    'Triggers are DISABLED'  
 IF @   CHECK   =   1  
     SELECT    'Triggers are ENABLED'  

 DROP    TABLE    ##   trtemp  


以上是关于sql 在SQL数据库中将所有触发器设置为Diabled或Enabled的主要内容,如果未能解决你的问题,请参考以下文章

新安装sql server数据库后设置

如何在 SQL Server Management Studio 中将列值设置为 NULL?

如何在过程oracle中将表名设置为参数

如何在 SQL Server 中将函数设置为默认值?

在 SQL Server 中将记录的状态设置为 false 之前检查记录的子记录

如何在 BigQuery SQL 中将一组用户分组为 10 个群组?