Tsql 是否可以将游标变量传递给sp_executesql?

Tsql 是否可以将游标变量传递给sp_executesql?,tsql,cursor,local-variables,Tsql,Cursor,Local Variables,尽管在将变量传递给sp_executesql时将其声明为类型“cursor”,但我还是得到了错误“操作数类型冲突:nvarchar与cursor不兼容” 我不知道出了什么问题,因为我已经将@sc声明为一个游标,而cursor\u TO\u PASS是一个游标,我在调用sp\u executesql时将其分配给@sc。那么,是否可以将光标传递给sp_executesql?我在发布此消息后不久就找到了解决方案。实际上,可以传递游标变量。这里只需要一个中间步骤,您必须将光标分配给一个“光标变量”,如下

尽管在将变量传递给sp_executesql时将其声明为类型“cursor”,但我还是得到了错误“操作数类型冲突:nvarchar与cursor不兼容”


我不知道出了什么问题,因为我已经将@sc声明为一个游标,而cursor\u TO\u PASS是一个游标,我在调用sp\u executesql时将其分配给@sc。那么,是否可以将光标传递给sp_executesql?

我在发布此消息后不久就找到了解决方案。实际上,可以传递游标变量。这里只需要一个中间步骤,您必须将光标分配给一个“光标变量”,如下所示:“光标可以通过以下两种方法之一与光标变量相关联:”,这两种方法都需要一个初始的、基本的光标变量声明,如“DECLARE@MyVariable cursor;”

因此,我在代码中添加了以下行:

declare @cursorvariable cursor;
set @cursorvariable = CURSOR_TO_PASS;
然后我将
@sc=CURSOR\u改为\u PASS
改为
@sc=@cursorvariable
,效果很好

declare @cursorvariable cursor;
set @cursorvariable = CURSOR_TO_PASS;