DECLARE @a int
set @a=0
WHILE @a<10
BEGIN
SELECT * from A
@a=@a+1
END
在这个例子中,A会被查询10次,出现10个表。有没有一种方法能让这10个表union all起来,合成一张表(由于数据量大,所以最好不创建新表当临时表)。感谢大神。
------解决思路----------------------
DECLARE @a int,@sql nvarchar(max)
set @sql=''
set @a=0
WHILE @a<10
BEGIN
set @sql=@sql+'
SELECT * from A '
@a=@a+1
if @a<10
set @sql=@sql+' union all '
END
print @sql
exec (@sql)