Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在SQL中重复执行任务?_Sql_Sql Server 2008 - Fatal编程技术网

如何在SQL中重复执行任务?

如何在SQL中重复执行任务?,sql,sql-server-2008,Sql,Sql Server 2008,有一个SQL脚本,其中包含一些已声明的变量。我想为这些变量的不同值集运行这个脚本,并查看输出。我该怎么做呢?请注意:这个答案是抄袭而来的,但对于你的问题来说是一个很好的资源 可以找到更多基于集合的与程序的示例,以及 下面是SQL代码中的一个实际示例: DECLARE @someFlag INT SET @someFlag = 0 WHILE (@someFlag <=5) BEGIN PRINT @someFlag SET @someFlag = @someFlag + 1 END GO

有一个SQL脚本,其中包含一些已声明的变量。我想为这些变量的不同值集运行这个脚本,并查看输出。我该怎么做呢?

请注意:这个答案是抄袭而来的,但对于你的问题来说是一个很好的资源

可以找到更多基于集合的与程序的示例,以及

下面是SQL代码中的一个实际示例:

DECLARE @someFlag INT
SET @someFlag = 0
WHILE (@someFlag <=5)
BEGIN
PRINT @someFlag 
SET @someFlag = @someFlag + 1
END
GO
DECLARE@someFlag INT
设置@someFlag=0

而(@someFlag如果您有相应的权限执行此操作,则可以将脚本设置为存储过程,然后多次运行此过程。有关如何执行此操作的参考:

你也不必做一个永久性的proc,如果你不需要它或者不想在任何数据库中运行它,你可以把它设置成一个临时proc

因此,与其创建过程dbo.usp_,不如将某个过程创建为。。。。 您将创建过程#usp#U SomeProcedure


您的另一个选项是将脚本放入一个nvarchar(max)变量中,并将其与其他变量一起使用以运行sp_executesql()。

我将使用游标或While循环(首选项为While)。类似于这样

DECLARE @i INT
SET @i = 1

WHILE (@i <=10)
BEGIN    
   -- do whatever you need to do
   SET @i = @i + 1
END
DECLARE@i INT
设置@i=1

WHILE(@我有没有研究过使用基于集合的方法?或循环(这是较少推荐的方法)。@Brian-你能告诉我“基于集合的方法”的技术术语吗这样我就可以在谷歌上轻松搜索了?@sequel,你到底试过什么?@RandomUs1r-真的没什么。只是在谷歌上搜索循环。我也在寻找其他选项。@sequel.lerner-+1表示你的主动性和积极学习。你能告诉我“基于集合的方法”的技术术语吗这样我就可以在谷歌上轻松搜索了?上面帖子中的答案并不能做到这一点。帖子为您更新了一些链接。请不要忘记投票并接受您认为最有用的答案。请不要忘记在答案中添加有用的信息,即使链接可用于引用外部资源。@Brian-谢谢对于这些链接。我了解如何使用int循环。如何在每次迭代中为不同的字符串执行脚本。例如,对于@city=boston,运行脚本。对于@city=newyork,运行脚本等。@sequel.learner-在使用字符串的情况下,您最好研究上面提到的存储过程。当使用strin时gs,您必须小心,因为它们是一种值类型,这意味着要“更改”它们,您实际上是在“添加”(连接)现有字符串。使用的字符串越大,速度就越慢。