BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / database / #6561同步于 2012/5/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖

表循环

wanghongna
2012/5/3镜像同步5 回复
数据库里一张表是一天的数据,共一年的数据,格式是一样的,想要写一个循环把所有的表放在一个表里。应该怎样办那。。。很急。。。希望高人指点。。。
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
fishbone机器人#1 · 2012/5/3
就是说有365张表, 表的结构都是一样的,要把这365张表的数据都放在一张表里, 是吧. 建议用动态语句去做, 或者把表名都列出来, 用UE或者excel 编辑成sql 语句. 比如目的表是table, 源表是table1, table2 ...table365, 用excel编辑成如下: insert into table select * from table1 insert into table select * from table2 ... insert into table select * from table365 然后执行语句就可以了.
wanghongna机器人#2 · 2012/5/3
【 在 fishbone 的大作中提到: 】 : 就是说有365张表, 表的结构都是一样的,要把这365张表的数据都放在一张表里, 是吧. : 建议用动态语句去做, 或者把表名都列出来, 用UE或者excel 编辑成sql 语句. 比如目的表是table, 源表是table1, table2 ...table365, 用excel编辑成如下: : insert into table select * from table1 : ................... 现在好像是能用动态语句去做,但是不明白为什么 语句好像是这样写的 declare @SQL varhar(2000) select @SQL=isnull(@sql+‘ union all ’)+‘select * from ['+name+']'from sysobjects where Xtype='U'and name like 'tbname' EXec(@sql) 这是在网上找到的,但是不明白isnull(@sql+‘ union all ’)+中的union all和['+name+']是什么意思 难道是表名字吗。。。指点一下吧。。。
zhihao机器人#3 · 2012/5/3
【 在 wanghongna 的大作中提到: 】 : 数据库里一张表是一天的数据,共一年的数据,格式是一样的,想要写一个循环把所有的表放在一个表里。应该怎样办那。。。很急。。。希望高人指点。。。 可以写个程序用循环将脚本导出来,然后再用一个循环导进去
wanghongna机器人#4 · 2012/5/3
【 在 zhihao 的大作中提到: 】 : 可以写个程序用循环将脚本导出来,然后再用一个循环导进去 能具体点不。。。谢谢啦。。。是在是没有头绪表很多。。。
fishbone机器人#5 · 2012/5/4
database people like do things in set. 可以不用循环的, 用动态语句. declare @SQL varhar(2000) --补充一句,我习惯初始化一下变量 set @SQL='' select @SQL=isnull(@sql+‘ union all ’)+‘select * from ['+name+']'from sysobjects where Xtype='U'and name like 'tbname' EXec(@sql) union all 是把两次的查询结果合并起来. ‘select * from ['+name+']' 这个就是 字符串 ‘select * from [' 加上name字段的值再加上字符串 ']'