在动态SQL中增加INT类型的参数

时间:2017-02-08 14:33:08

标签: sql sql-server dynamic-sql

我试图在我的每个循环中将我的脚本中的参数集增加1。

这是我在我的剧本中所做的一个例子:

if ( data.id ) {
  # update
  $http.patch(`/api/v1/foo/${data.id}/`, data );
}
else {
  # create
  $http.post(`/api/v1/foo/`, data );
}

此脚本还有很多内容,但这是相关部分。我理解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' 只是将@I的值连接到字符串,但是任何人都可以提供任何建议,以便我可以使@I的值增加1。

目前执行sql时,set命令最终会如下所示:

'+ Convert(Varchar, @I) +'

我需要它来改变下一个循环的实际变量值。

这甚至可能吗?

1 个答案:

答案 0 :(得分:1)

您可以在查询中使用'@I'作为变量:

我正在尝试在我的脚本中将每个循环中的参数集增加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'