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.csdn.net/lihonggen0/archive/2008/10/27/3155755.aspx
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值