SQL Server:使用PARAMETER声明游标

时间:2016-09-21 14:26:17

标签: sql-server cursor

这个问题主要是为了证实我在一些谷歌搜索后得出的(悲伤)结论。

我需要在SQL Server 2012中使用CURSOR,其中有WHERE子句取决于参数,例如:

...
DECLARE @MyParam INT ;

DECLARE My_Cur CURSOR FOR 
     SELECT A 
     FROM MyTable
     WHERE B = @MyParam
...
...

SET @MyParam = 2 ;
...
...
OPEN My_Cur 

WHILE ...
BEGIN

    FETCH My_Cur INTO ...
END;

执行此操作时,我根本没有得到任何结果。如果我部署值2而不是游标声明中的变量,则结果将根据需要显示出来。

这在其他DBMS(例如ORACLE)中完美运行。

是否可以使用这种类型的参数化游标?如果没有,有人可以建议解决方法吗?

我发现一些帖子建议在将值分配给变量之后声明光标但是...这对我来说是一个非常奇怪的限制。

感谢。

0 个答案:

没有答案