如何在SQL中重复执行任务?
有一个SQL脚本,其中包含一些已声明的变量。我想为这些变量的不同值集运行这个脚本,并查看输出。我该怎么做呢?请注意:这个答案是抄袭而来的,但对于你的问题来说是一个很好的资源 可以找到更多基于集合的与程序的示例,以及 下面是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
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,您必须小心,因为它们是一种值类型,这意味着要“更改”它们,您实际上是在“添加”(连接)现有字符串。使用的字符串越大,速度就越慢。