我想声明一个游标,它根据作为参数传递给存储过程的开关来查看不同的表。
即,如下所示:
DECLARE curs CURSOR FOR
CASE
WHEN @sname = 'A_database'
THEN select a,b,c from [a].dbo.[mytable];
WHEN @sname = 'B_database'
THEN select a,b,c from [b].dbo.[mytable];
END
我知道这是错误的语法,但我希望你能推断出我的意思,并解释一个人应该怎么做。
答案 0 :(得分:2)
您可以按如下方式使用游标变量:
DECLARE @curs CURSOR
IF @sname = 'A_database'
SET @curs = CURSOR FOR
select a,b,c from [a].dbo.[mytable];
ELSE IF @sname = 'B_database'
SET @curs = CURSOR FOR
select a,b,c from [b].dbo.[mytable];
OPEN @curs
... etc