0

我有 2 个场景需要用集合操作替换游标。

我需要知道是否有人对此有任何想法。我有麻烦了。

  1. 我有一个表,其中包含触发器的名称和与之相关的表。我需要禁用或启用它们,目前它正在使用光标循环并调用

    disable trigger 
    
    enable trigger 
    

    有没有办法调用这些传递一组数据?

  2. 我有一个临时表被插入,就像一个游标用于保存一组数据,一个@name被逐行拉出。

    insert into @Tmp(name)
    exec usp_here @name, @value  -- this returns a single column 
    

-- 更新 --
我将查询从存储过程中提取出来并使用 CTE 而不是游标并直接加入它。这是一种选择。还有其他人吗?

4

1 回答 1

0

这整个过程是作为作业运行还是从一个命令运行?

运行一个命令来设置第二个步骤可以吗?

如果是这样,您可以执行以下操作:

启用:

select 'enable trigger ' + [the trigger name] + ' on ' + [the object name]
from [your table]
where [how you identify the triggers]

-或者-

要禁用:

select 'disable trigger ' + [the trigger name] + ' on ' + [the object name]
from [your table]
where [how you identify the triggers]

这些将为您提供启用或禁用触发器所需的所有命令的列表。您可以将其输出到 sql 文件或将输出复制并粘贴到新的查询窗口,然后运行它。

于 2013-07-08T01:26:07.730 回答