如何使用动态SQL声明游标?

时间:2016-11-28 14:44:41

标签: sql-server tsql cursor dynamic-sql

我想在动态SQL下面声明一个游标,但是当我尝试在存储过程中编译它时,下面的SQL失败了。有一个更好的方法吗?感谢。

DECLARE selrec CURSOR FOR 
SELECT DISTINCT countrycode FROM @InputTableName;

错误消息: -

Must declare the table variable "@InputTableName".

PS: - 我声明了变量名称,并且我在构建游标之前设置了值。

1 个答案:

答案 0 :(得分:0)

这对我来说很好(在这两个表的数据库中):

declare @i1 int=5
declare @a1 varchar(1000)
set @a1='select top 5 * from '
if (@i1 > 4)
begin
    set @a1 = @a1 + ' [dbo].[dts_source]'

end
else
begin

    set @a1 = @a1 + ' [dbo].[dts_references]'
end
select @a1
exec (@a1)

你在哪台SQL机器上运行(

  

立即执行

不是SQL Server语法)?