这个问题下午困扰了好久,最后有幸得到一朋友的指点,算是搞定了。。。
DECLARE @SQLS NVARCHAR(4000) --拼接sql语句 set @SQLS = 'select top '+cast(@TOP as nvarchar(10))+' a,b from …………' set @SQLS='declare daoru cursor for '+@SQLS execute(@SQLS) open daoru fetch next from daoru into @a,@b ………… --后面的游标写法都是很正常的。 --区别就在于 declare daoru cursor 提取出来拼接到 动态语句里面而已。下面open开始都不用拼的