Declare @sql varchar(200) Set @sql='Select ID,Name from USER' Exec @sql怎么在存储过程里循环结果,游标不行

解决方案 »

  1.   

    Declare @sql varchar(200)  Set @sql='declare cur cursor for Select ID,Name from [USER]'  Exec(@sql)open cur.....
      

  2.   

    open cur.....主要是这里怎么写.上面的到是会.
      

  3.   

    exec('
    declare @a int,@b varchar(10)
    declare cur cursor for select * from tb
    open cur
    fetch next from cur into @a,@b
    while @@fetch_status=0
    begin
    print @a
    print @b
    fetch next from cur into @a,@b
    endCLOSE cur
    DEALLOCATE cur
    ')
      

  4.   

    直接写啊:
    Declare @sql varchar(200)  
    declare @id int, @name varchar(100)
    Set @sql='declare cur cursor for Select ID,Name from [USER]'  Exec(@sql)open cur
    fetch from cur into @id,@name
    while @@fetch_status=0
    begin
       处理.....
       fetch from cur into @id,@name
    end 
    close cur
    deallocate cur
      

  5.   


    declare @id int, @name varchar(100)
    declare cur cursor for Select ID,Name from [USER]open cur
    fetch from cur into @id,@name
    while @@fetch_status=0
    begin
       处理.....
       fetch from cur into @id,@name
    end 
    close cur
    deallocate cur这样似乎更直接
      

  6.   

    再次支持直接写,并且
    Set @sql='declare cur cursor for Select ID,Name from [USER]'
    这个sql字符串最好也不要用了,
    直接写sql得了