这样的存储过程怎么写???

beggy 2003-09-15 09:10:59
表k001:
field1 field2 field3
aa 1 1.1
bb 2 2.2
cc 3 3.3
数据库里还有数量不定的表,可能是10个,也可能是20个,
但表的结构和表k001是一样,其他表的表名依次为k002,k003....
每个表中都有很多记录,

现在要把所有表的记录合并起来,如果要写成存储过程怎么办???
...全文
15 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beggy 2003-09-15
  • 打赏
  • 举报
回复
结贴了
beggy 2003-09-15
  • 打赏
  • 举报
回复
set @sql=substring(@sql,12,@sql)

应该是 set @sql=substring(@sql,12,len(@sql))
其他都和zjcxc(邹建) 的代码一样,

结果解决了。

nboys()的方法应该去掉 set @sql=substring(@sql,12,@sql)

谢谢各位!!



TaoGeGe 2003-09-15
  • 打赏
  • 举报
回复
來晚了 ^_^
zjcxc(邹建) ( ) 的方法可行
nboys 2003-09-15
  • 打赏
  • 举报
回复
create proc p_merg
as
declare @sql varchar(8000)
set @sql='select * from k001'
select @sql=@sql+' union all select * from '+name --这个地方可能出错
from sysobjects where objectproperty(id,'IsUserTable')=1
and name like 'k0[0-9]' and name<>'k001'
set @sql=substring(@sql,12,@sql)

--查询
exec(@sql)

--将结果生成一个表
exec('select * into 表名 from('+@sql+') a')
go
zjcxc 2003-09-15
  • 打赏
  • 举报
回复
create proc p_merg
as
declare @sql varchar(8000)
set @sql=''
select @sql=@sql+' union all select * from '+name
from sysobjects where objectproperty(id,'IsUserTable')=1
and name like 'k[0-9][0-9]'
set @sql=substring(@sql,12,@sql)

--查询
exec(@sql)

--将结果生成一个表
exec('select * into 表名 from('+@sql+') a')
go
beggy 2003-09-15
  • 打赏
  • 举报
回复
我知道用

SELECT name
FROM sysobjects
WHERE (xtype = 'u') AND (status > 0)

可以得到表名列表,然后就。。。。。。。。
请各位指教。。。。。。。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧