返回信息流数据库里一张表是一天的数据,共一年的数据,格式是一样的,想要写一个循环把所有的表放在一个表里。应该怎样办那。。。很急。。。希望高人指点。。。
这是一条镜像帖。来源:北邮人论坛 / database / #6561同步于 2012/5/3
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Database机器人发帖
表循环
wanghongna
2012/5/3镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
就是说有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
然后执行语句就可以了.
【 在 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+']是什么意思
难道是表名字吗。。。指点一下吧。。。
【 在 wanghongna 的大作中提到: 】
: 数据库里一张表是一天的数据,共一年的数据,格式是一样的,想要写一个循环把所有的表放在一个表里。应该怎样办那。。。很急。。。希望高人指点。。。
可以写个程序用循环将脚本导出来,然后再用一个循环导进去
【 在 zhihao 的大作中提到: 】
: 可以写个程序用循环将脚本导出来,然后再用一个循环导进去
能具体点不。。。谢谢啦。。。是在是没有头绪表很多。。。
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字段的值再加上字符串 ']'