这个问题主要是为了证实我在一些谷歌搜索后得出的(悲伤)结论。
我需要在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)中完美运行。
是否可以使用这种类型的参数化游标?如果没有,有人可以建议解决方法吗?
我发现一些帖子建议在将值分配给变量之后声明光标但是...这对我来说是一个非常奇怪的限制。
感谢。