在存储过程中设置某表的触发器是否启用

 
ALTER  PROCEDURE [dbo].[DisableEnable_Trigger]
@TableName varchar(50),
@DisableEnableType VARCHAR(10)
AS
/*****************************************************************************************
 **      Input:
**   @TableName: table to disable/enable trigger
**   @DisableEnableType in ('Disable', 'Enable')

 **   Exec DisableEnable_Trigger 'OuttblStore', 'Disable'
**   Exec DisableEnable_Trigger 'OuttblStore', 'Enable'
 **  
******************************************************************************************/
BEGIN
SET NOCOUNT ON
 --PRINT 'Executing DisableEnable_Trigger...' + @TableName
 DECLARE  @TriggerName  VARCHAR(100)
 DECLARE  @SqlStatement NVARCHAR(200)
 
 -- Get triggers list in cursor
 DECLARE  cursorTriggers CURSOR FOR
 SELECT name FROM sysobjects
  WHERE xtype = 'TR' and parent_obj =
   (SELECT id FROM sysobjects WHERE name = @TableName)

  OPEN cursorTriggers
   FETCH NEXT FROM cursorTriggers INTO @TriggerName
   WHILE @@FETCH_STATUS = 0
   BEGIN
   IF upper(@DisableEnableType) = 'DISABLE'
    SET @SqlStatement = 'ALTER TABLE '+@TableName+' DISABLE TRIGGER ' +@TriggerName
   ELSE
    SET @SqlStatement = 'ALTER TABLE '+@TableName+' ENABLE TRIGGER ' +@TriggerName
 
   --PRINT @SqlStatement
   EXEC sp_executesql @SqlStatement
    
      FETCH NEXT FROM cursorTriggers INTO @TriggerName
   END
   CLOSE cursorTriggers
   DEALLOCATE cursorTriggers

 --PRINT 'Executed DisableEnable_Trigger...' + @TableName+ '.'+@DisableEnableType
SET NOCOUNT OFF
END


 

posted on 2011-08-18 16:22 钻石眼泪 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/huanghai223/archive/2011/08/18/2144757.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值