要是其它高级语言写就好办多了,在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
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
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