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

时间:2013-03-06 23:17:27

标签: sql sql-server-2008

有一个带有一些声明变量的SQL脚本。我想为这些变量的各种值集运行此脚本并查看输出。我该怎么做?

3 个答案:

答案 0 :(得分:1)

请注意:此答案是从here复制的,但对于您所要求的内容来说,这是一个很好的资源。

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

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

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

答案 1 :(得分:1)

如果您具有相应的权限,则可以将脚本设置为存储过程,然后多次运行该过程。参考如何操作:http://msdn.microsoft.com/en-us/library/ms187926(v=sql.100).aspx

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

所以代替CREATE PROCEDURE dbo.usp_SomeProcedure AS .... 你会做CREATE PROCEDURE #usp_SomeProcedure

您的另一个选择是将您的脚本放入nvarchar(max)变量,并将其与其他变量一起使用以运行sp_executesql(http://msdn.microsoft.com/en-us/library/ms188001.aspx)。

答案 2 :(得分:1)

我会使用Cursor或While循环(首选项将是While)。它会是这样的

DECLARE @i INT
SET @i = 1

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