用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
lihonggen0的公告
<a href="http://www.microsoft.com/china/community/Professional/MVP/MVPIntro.mspx" target="_blank"><center><img src="http://www.mvps.org/images/mvpani.gif" border="0"> </center></a> 贴子以"现状"提供且没有任何担保也没有授予任何权利。 <div><b><font color=#FF0000>转载请注明原文章出处!</font color></b></div> <left>
文章分类
.NET技术站点
codeproject.com
微软官方站点asp.net
微软官方站点Gotdotnet
微软官方站点windowsforms
我的个人链接
CSDN文档中心
在微软的专栏
存档

原创  Sample: 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

发表于 @ 2008年10月27日 05:59:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:接受CSDN采访文章: 新技术不断,微软系开发者如何面对 | 新一篇:VS2008 比较两个数据库的表结构差异,并同步

  • 发表评论
  • 评论内容:
  •  
Copyright © lihonggen0
Powered by CSDN Blog