请教一个关于游标中动态SQL的问题?
- SQL code
create procedure test@fld varchar(100)asdeclare @sql nvarchar(500)set @sql='declare xyz cursor fast_forward for select ' + @fld + ' from abc'exec sp_executesql @sqlopen xyzfetch next from xyz into ....(@fld是所要查询的列的字符串,是未知个数的,这里应该怎么写呢?).....................
[解决办法]
不能这样做的.
动态执行的内容,与当前程序不在同一个连接中,你在动态定义的游标,是无法到当前过程中去调用的.
如果 abc 中的列不是很多,你可以考虑用 if else 结构来处理.
其实游标的功能很多情况下都可以用其他语句来实现的.