动态查询无法使用SqlServer 2008存储过程中的游标
我正在Sql Server 2008中构建一个存储过程。存储过程有两个参数,它们是表的列名。在存储过程中,我使用动态查询在游标的帮助下获取这两列的数据 代码: 但当我执行此SP时,它会给我以下错误动态查询无法使用SqlServer 2008存储过程中的游标,sql,sql-server,sql-server-2008,stored-procedures,Sql,Sql Server,Sql Server 2008,Stored Procedures,我正在Sql Server 2008中构建一个存储过程。存储过程有两个参数,它们是表的列名。在存储过程中,我使用动态查询在游标的帮助下获取这两列的数据 代码: 但当我执行此SP时,它会给我以下错误 Msg 16916, Level 16, State 1, Procedure TestSP, Line 33 A cursor with the name 'result_Cursor' does not exist. 执行命令: Exec TestSP "Column_1","Column_2"
Msg 16916, Level 16, State 1, Procedure TestSP, Line 33
A cursor with the name 'result_Cursor' does not exist.
执行命令:
Exec TestSP "Column_1","Column_2"
有人能告诉我为什么我会犯这个错误吗
请帮忙
谢谢错误是光标不存在。不能以“设置光标”开头。此外,游标名称不带@ 所以试着使用
declare cursorNameHere cursor for SELECT ...
open cursorNameHere
@result\u Cursor
是一个变量,只需将最后一行更改为
FETCH NEXT FROM @result_Cursor INTO @x, @y
请参见有关更改的示例
PRINT 'CURSOR_QUERY'+@cursor_query
到
将@添加到您的参数result\u游标并重试:
将下一步从@result\u游标提取到@x、@y
其工作状态…谢谢Nadeem…)非常欢迎您;)
PRINT 'CURSOR_QUERY'+@cursor_query
PRINT 'CURSOR_QUERY '+@cursor_query