Sql server 2008 SQL Server的游标替换
我有两种情况需要用set操作替换游标 我想知道是否有人对此有任何想法。我有麻烦了Sql server 2008 SQL Server的游标替换,sql-server-2008,tsql,cursor,Sql Server 2008,Tsql,Cursor,我有两种情况需要用set操作替换游标 我想知道是否有人对此有任何想法。我有麻烦了 我有一个表,其中包含触发器的名称及其相关的表。我需要禁用或启用它们,目前它正在使用游标循环并调用 disable trigger enable trigger 有没有一种方法可以通过传递一组数据来调用这些函数 我有一个临时表被插入到类似的程序中 光标用于保存一组数据,并逐行拉出@name insert into @Tmp(name) exec usp_here @name, @value -- this
disable trigger
enable trigger
有没有一种方法可以通过传递一组数据来调用这些函数insert into @Tmp(name)
exec usp_here @name, @value -- this returns a single column
我从存储过程中取出查询,使用CTE而不是游标,并直接连接到它。这是一种选择。还有其他的吗?整个过程是作为作业运行还是通过一个命令运行 可以运行一个命令来设置第二步吗 如果是这样,您可以这样做: 要启用:
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文件,或者将输出复制并粘贴到新的查询窗口,然后运行它。它现在位于存储过程中,逐行运行以启用或禁用。但我正试图让它更基于集合,我是用sp_executesql来执行这些命令的。