表之间的复制

      有的时候我们需要把数据从一张表复制到另外一张表。这两张表可能是同一服务器同一用户同一数据中的两张表,也有可能是不同服务器不同数据库的两张表。下面是我碰到最简单的一种情况:同一服务器同一用户同一数据库中的两张表,下面以a表和b表代替。

一、目标存在的情况下。如从a表复制到b表,b表已经存在。

oracle

       insert  into b select * from a

sql server

       insert into b select * from a

二、目标表不存在的情况下。如从a表复制到b表,b表不存在的。

oracle

      create table b as select * from   a     --a是被复制表

sql  server

     select * into b    from   a   --a是被复制表

以上语句执行a表的结构和所有记录都会被复制到b表中去。

oracle

      create table b as select * from a  where 1=1    --a是被复制表

sql  server

     select * into b    from a  where 1=2 --a是被复制表

 

 

下面我是网上找到的一些简单例子供自己以后参考也供大家一起学习:

====================================================================================

1.不同用户之间的表数据复制
对于在一个数据库上的两个用户A和B,假如需要把A下表old的数据复制到B下的new,请使用权限足够的用户登入sqlplus:
insert into B.new(select * from A.old);

如果需要加条件限制,比如复制当天的A.old数据
insert into B.new(select * from A.old where date=GMT);
蓝色斜线处为选择条件

2.同用户表之间的数据复制
用户B下有两个表:B.x和B.y,如果需要从表x转移数据到表y,使用用户B登陆sqlpus即可:
insert into 目标表y select * from x where log_id>'3049' -- 复制数据
注意:要示目标表y必须事先创建好
如insert into bs_log2 select * from bs_log where log_id>'3049'    

3.B.x中个别字段转移到B.y的相同字段
--如果两个表结构一样
insert into table_name_new select * from table_name_old
如果两个表结构不一样:
insert into y(字段1,字段2) select 字段1,字段2 from x

4 将多个表数据插入一个表中
insert into 目标表test(字段1。。。字段n) (select 字段1.。。。。字段n) from 表 union all select 字段1.....字段n from 表

====================================================================================

 

sql_server不同数据库间复制表

不同数据库表结构 和数据的复制 :
目标数据库不存在要导入的表时:
example:
xuexiao为目标数据库,teaching为源数据库,dbo.course_list已经存在于teaching,想在没有此表的xuexiao库中复制一个用下面的语句完成


select * into xuexiao.dbo.course_list from teaching.dbo.course_list

不同数据库之间复制表的数据的方法

当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表

当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表

====================================================================================

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值