Declare @dav as varchar(50) ---定义变量,用来保存从游标中取得的值Declare cursor5 cursor for select a from A ---定义游标
open cursor5 ---打开游标fetch cursor5 into @pdav while @@fetch_status=0 ---循环读取值 begin exec('select * from '+@dav) ---执行操作
fetch cursor5 into @dav endclose cursor5 ---关闭游标Deallocate Cursor5 ---删掉游标
declare cursor_insert cursor for select a from A declare @i varchar(100) open cursor_insert fetch cursor_insert into @i while @@fetch_status=0 begin exec('select * from '+@i) fetch cursor_insert into @i end close cursor_insert deallocate cursor_insert
create proc test as set nocount on declare @str varchar(200) declare cursor_hdy cursor for select a from A open cursor_hdy fetch next from cursor_hdy into @str while @@fetch_status=0 begin exec('select * from '+@str) fetch next from cursor_hdy into @str end close cursor_hdy deallocate cursor_hdy
用游标就行了: create proc p_test as declare #aa cursor for select a from A declare @a varchar(1000) open #aa fetch next from #aa into @a while @@fetch_status=0 begin exec('select * from '+@a) fetch next from #aa into @a end deallocate #aa go
declare cursor_insert cursor for select a from A declare @i nvarchar(100) open cursor_insert fetch cursor_insert into @i while @@fetch_status=0 begin exec('select * from '+@i) fetch cursor_insert into @i end close cursor_insert deallocate cursor_insert
open cursor5 ---打开游标fetch cursor5 into @pdav while @@fetch_status=0 ---循环读取值
begin
exec('select * from '+@dav) ---执行操作
fetch cursor5 into @dav
endclose cursor5 ---关闭游标Deallocate Cursor5 ---删掉游标
declare @i varchar(100)
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
exec('select * from '+@i)
fetch cursor_insert into @i
end
close cursor_insert
deallocate cursor_insert
as
set nocount on
declare @str varchar(200)
declare cursor_hdy cursor for select a from A
open cursor_hdy
fetch next from cursor_hdy into @str
while @@fetch_status=0
begin
exec('select * from '+@str)
fetch next from cursor_hdy into @str
end
close cursor_hdy
deallocate cursor_hdy
create proc p_test
as
declare #aa cursor for select a from A
declare @a varchar(1000)
open #aa
fetch next from #aa into @a
while @@fetch_status=0
begin
exec('select * from '+@a)
fetch next from #aa into @a
end
deallocate #aa
go
declare @i nvarchar(100)
open cursor_insert
fetch cursor_insert into @i
while @@fetch_status=0
begin
exec('select * from '+@i)
fetch cursor_insert into @i
end
close cursor_insert
deallocate cursor_insert