在动态 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'