请问如何把a表中字段(不是字段值)追加到另一个已经存在的表b中?

youzhj 2009-06-18 08:49:41
如表a:f1,f2,f3,f4 表b:e1,e2,e3
问题:把a表中f2,f3字段追加到表b中去,目前表都是空表,没有记录。用sql语句如何实现呢?
...全文
53 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
youzhj 2009-06-19
  • 打赏
  • 举报
回复
where 0=1意思就是说这个条件永远不成立,也就是说没有满足0=1的条件的数据,这样的话,只会把表的结构复制过去,里面的数据不会动。
t240034137 2009-06-19
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 swot2ly_100 的回复:]
重建一个不就行了,
select a.*,b.* into c from a,b where 0=1
再将b删掉或改名,c改名为b
[/Quote]

高手问一下 Where 0=1 中0=1是约束什么?我小白
  • 打赏
  • 举报
回复
[code=SQL]select T1.*,T2.*
into T3
FROM T1,T2


然后删除T2,将T3名称改为T2。[/code]
swot2ly_100 2009-06-18
  • 打赏
  • 举报
回复
或者采用下面的脚本结果集
select 
'alter table b add '+tp.[name] +
case when col.user_type_id in (231,239) then '('+convert(varchar(10),col.max_length)+')'
when col.user_type_id in (106,108) then '('+convert(varchar(10),col.max_length)+','+convert(varchar(10),col.scale)+')' else ' ' end +
case when col.is_nullable = 0 then ' not null' else ' null' end
from sys.types as tp
inner join
sys.columns as col
on tp.user_type_id = col.user_type_id
where col.object_id = object_id('b')

把结果集拷贝出来,执行
或者走游标一次执行上述结果集中的每一个脚本
swot2ly_100 2009-06-18
  • 打赏
  • 举报
回复
重建一个不就行了,
select a.*,b.* into c from a,b where 0=1
再将b删掉或改名,c改名为b
youzhj 2009-06-18
  • 打赏
  • 举报
回复
那看来我这个问题是没法用sql语句快速实现了。
王向飞 2009-06-18
  • 打赏
  • 举报
回复
改表结构吧?增加列属性
youzhj 2009-06-18
  • 打赏
  • 举报
回复
回楼上:这两天确实忙得我啊,刚给我一个项目,以前从没有做过,我们一直是做工控方面的系统集成的,现在这个项目要求把现场大量数据全部存在数据库,而数据库我基本上不会,项目又催得紧。没办法。建了很多表,而且字段很多。
ai_li7758521 2009-06-18
  • 打赏
  • 举报
回复
--添加f2列
ALTER TABLE bb
ADD f2 VARCHAR(20) NULL;
feixianxxx 2009-06-18
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 youzhj 的回复:]
可能是我没说清楚:我要复制的是字段本身及其定义,而不是字段的值。而且两个表已经存在,都各自有自己的字段。
[/Quote]

发现你这2天总是问些 大型转移的东西 批量改列名 列属性 干嘛呢你
youzhj 2009-06-18
  • 打赏
  • 举报
回复
可能是我没说清楚:我要复制的是字段本身及其定义,而不是字段的值。而且两个表已经存在,都各自有自己的字段。
jinjazz 2009-06-18
  • 打赏
  • 举报
回复
用inner join 把数据select到新表中,然后把旧表改名,把新表改为旧表的名字.
youzhj 2009-06-18
  • 打赏
  • 举报
回复
字段太多了,要不我自己造就弄了,现在已经手动操作了一部分,实在麻烦。主要是有很多表。
feixianxxx 2009-06-18
  • 打赏
  • 举报
回复
直接Add添加不行么?
feixianxxx 2009-06-18
  • 打赏
  • 举报
回复
那就 alter table b add b表的字段
youzhj 2009-06-18
  • 打赏
  • 举报
回复
没人了么,难道这个问题不能用sql实现么?
youzhj 2009-06-18
  • 打赏
  • 举报
回复
请注意:表a和表b都是已经存在的表。只是把a表中的某些或全部字段原封不动地复制到b表中,也就是让b表增加几个字段。
youzhj 2009-06-18
  • 打赏
  • 举报
回复
回楼上:就是让b表中也有f2,f3字段,与a表中一样。因为我数据库里需要这样的操作很多,在企业管理器手工操作很慢,所以才求教sql语句。
nalnait 2009-06-18
  • 打赏
  • 举报
回复
insert into b(e1...)
select f1... from a
jinjazz 2009-06-18
  • 打赏
  • 举报
回复
什么叫追加字段?inner join?

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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