如题 ,谢谢了!

解决方案 »

  1.   

    用游标变量即可, 参考下述示例DECLARE
    @sql nvarchar(4000)-- 游标查询语句
    SELECT
    @sql = N'
    SELECT * FROM sys.objects'-- 游标处理
    DECLARE
    @tb CURSOR
    SELECT
    @sql = N'
    SET @tb = CURSOR LOCAL
    FOR 
    ' + @sql + N'
    OPEN @tb
    '
    EXEC sp_executesql @sql, N'@tb CURSOR OUTPUT', @tb OUTPUT-- 游标循环
    FETCH @tb 
    WHILE @@FETCH_STATUS = 0
    BEGIN
    FETCH @tb 
    END
    CLOSE @tb
    DEALLOCATE @tb
      

  2.   

    请问楼上的 N'开头是什么意思? 
    还有 EXEC sp_executesql @sql, N'@tb CURSOR OUTPUT', @tb OUTPUT
    中的OUTPUT是什么意思? 
      

  3.   

    N表示以unicode编码传输字符数据
    OUTPUT表示输出参数
      

  4.   


    跟在老大后面,弱弱的贴一下
    declare @sql varchar(100)
    set @sql='select * from tablename'
    exec('declare cur cursor for '+@sql)
    open cur
    --下面跟正常使用时一样