要是其它高级语言写就好办多了,在SQL下也有一法就是借助临时表或表变量 delcare dd cursor for select name from table
open dd
fetch dd into @name
WHILE @@FETCH_STATUS = 0
begin
    if exists(select 1 from ....)
         drop table ##
    exec('select * into ## from '+@name)
    declare ddd cursor from select * from ##
    open ddd
    ....
    CLOSE ddd
    DEALLOCATE ddd
end
CLOSE dd
DEALLOCATE dd

解决方案 »

  1.   

    delcare dd cursor for select name from table
    open dd
    fetch dd into @name
    WHILE @@FETCH_STATUS = 0
    begin
        if exists(select 1 from sysobjects where id = OBJECT_ID ( '##'))
             drop table ##
        exec('select * into ## from '+@name)
        declare ddd cursor from select * from ##
        open ddd
        ....
        CLOSE ddd
        DEALLOCATE ddd
    end
    CLOSE dd
    DEALLOCATE dd