在动态 SQL 中递增 INT 类型的参数
Incrementing a parameter of type INT in dynamic SQL
我试图在我的 while 的每个循环中将脚本中的参数集递增 1。
这是我在脚本中所做的示例:
DECLARE @I AS INT;
SET @I = 0;
DECLARE @SQL NVARCHAR(MAX)
SET @SQL =
'WHILE '+ Convert(Varchar, @I) +' < (SELECT statement here...)
BEGIN
SET '+ Convert(Varchar, @I) +' = '+ Convert(Varchar, (@I + 1))'
END'
此脚本还有很多内容,但这是相关部分。我知道 '+ Convert(Varchar, @I) +'
只是将 @I 的值连接到字符串,但是任何人都可以就如何实现它提出任何建议,以便 @I 的值增加 1.
目前在执行sql时,set指令会变成这样:
SET 0 = 0 + 1
我需要它来更改下一个循环的实际变量值。
这可能吗?
您可以在查询中使用“@I”作为变量:
我试图在我的 while 的每个循环中将脚本中的参数集递增 1。
这是我在脚本中所做的示例:
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = '
DECLARE @I AS INT;
SET @I = 0;
WHILE @I +' < (SELECT statement here...) +
'
BEGIN
SET @I = @I + 1
END'
我试图在我的 while 的每个循环中将脚本中的参数集递增 1。
这是我在脚本中所做的示例:
DECLARE @I AS INT;
SET @I = 0;
DECLARE @SQL NVARCHAR(MAX)
SET @SQL =
'WHILE '+ Convert(Varchar, @I) +' < (SELECT statement here...)
BEGIN
SET '+ Convert(Varchar, @I) +' = '+ Convert(Varchar, (@I + 1))'
END'
此脚本还有很多内容,但这是相关部分。我知道 '+ Convert(Varchar, @I) +'
只是将 @I 的值连接到字符串,但是任何人都可以就如何实现它提出任何建议,以便 @I 的值增加 1.
目前在执行sql时,set指令会变成这样:
SET 0 = 0 + 1
我需要它来更改下一个循环的实际变量值。
这可能吗?
您可以在查询中使用“@I”作为变量:
我试图在我的 while 的每个循环中将脚本中的参数集递增 1。
这是我在脚本中所做的示例:
DECLARE @SQL NVARCHAR(MAX)
SET @SQL = '
DECLARE @I AS INT;
SET @I = 0;
WHILE @I +' < (SELECT statement here...) +
'
BEGIN
SET @I = @I + 1
END'