SQL 2008循环所有表和所有列

其实很简单,相对于SQL 2000改了sys.all_objects和sys.columns


declare @tblname varchar(200)

declare @object_id int

declare tbl_cursor CURSOR for

select name,object_id from sys.all_objects where type='u'



open tbl_cursor



FETCH NEXT FROM tbl_cursor

INTO @tblname,@object_id



while @@FETCH_STATUS = 0

Begin



declare @str varchar(8000)

declare @selectstr varchar(2000)

set @selectstr=''

set @str='INSERT INTO '+ @tblname +'('

--print @tblname,@object_id

declare @colname varchar(200)

declare col_cursor CURSOR for

select name from sys.columns where object_id=@object_id order by column_id

open col_cursor

FETCH NEXT FROM col_cursor INTO @colname

WHILE @@FETCH_STATUS = 0

BEGIN

set @str=@str+@colname+','

--Print @str

set @selectstr=@selectstr+@colname+','

--Print @colname

FETCH NEXT FROM col_cursor INTO @colname

END

close col_cursor

deallocate col_cursor



set @str=substring(@str,0,len(@str))

set @selectstr=substring(@selectstr,0,len(@selectstr))

set @str=@str+') SELECT ' + @selectstr +' FROM '+ @tblname

Print @str



fetch next from tbl_cursor into @tblname,@object_id

End



close tbl_cursor

deallocate tbl_cursor



本文转载自:
http://blog.youkuaiyun.com/lihonggen0/archive/2008/10/27/3155755.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值