Sql server 我正在尝试循环通过我的计数器来创建一个动态sql查询,该查询最终应该如下所示

Sql server 我正在尝试循环通过我的计数器来创建一个动态sql查询,该查询最终应该如下所示,sql-server,dynamic,Sql Server,Dynamic,我正在尝试循环通过我的计数器来创建一个动态sql查询,它最终看起来应该像110111112 我试图用这种方法得到最终的查询,但似乎不起作用 declare @CurrentRow int set @CurrentRow =0; declare @RowsToProcess int declare @FinalHistoricalQuery varchar(5000) WHILE @CurrentRow<3 BEGIN SET @FinalHistoricalQuery =

我正在尝试循环通过我的计数器来创建一个动态sql查询,它最终看起来应该像
110111112

我试图用这种方法得到最终的查询,但似乎不起作用

declare @CurrentRow int
set @CurrentRow =0;
declare @RowsToProcess int
declare @FinalHistoricalQuery varchar(5000)
WHILE @CurrentRow<3
BEGIN      
   SET @FinalHistoricalQuery =' select 11'+convert(varchar(20),@CurrentRow) + ' union '
   SET @CurrentRow=@CurrentRow+1
END

SET @FinalHistoricalQuery = left(@FinalHistoricalQuery,len(@FinalHistoricalQuery)-6)
exec (@FinalHistoricalQuery)
declare@CurrentRow int
设置@CurrentRow=0;
声明@RowsToProcess int
声明@FinalHistoricalQuery varchar(5000)

当@CurrentRow缺少
append
时,在每个循环中生成的字符串将被存储在变量中,因此您将只获得在上一个循环中生成的字符串

同时使用
空字符串
初始化
变量

declare @FinalHistoricalQuery varchar(5000)=''
....
SET @FinalHistoricalQuery +=' select 11'+convert(varchar(20),@CurrentRow) + ' union '
SET @CurrentRow=@CurrentRow+1
....