你的位置:首页 > 数据库

[数据库]SQL复制表结构或表数据


需求:

      软件开发过程中,一般会部署两个数据库:一个测试数据库提供给开发和测试过程使用;一个运维数据库提供上线使用。当需求变化需增加表时,会遇到数据库表结构或表数据同步的问题,这时就要复制表结构或表数据。

 

两种情形:

      一、两个数据库部署在同一服务器上:

           从数据库A复制到B:

           复制表结构和数据:select * into  数据库B.dbo.Department from 数据库A.dbo.Department 

           只复制表结构:  select * into  数据库B.dbo.Department from 数据库A.dbo.Department  where 1!=1

           只复制部分字段:select a1,a2 into  数据库B.dbo.Department from 数据库A.dbo.Department  

      二、两个数据库部署在不同服务器上:

           从数据库A复制到B:

           在数据库B中操作,打开相关配置:

           exec sp_configure "show advanced options",1
           reconfigure
           exec sp_configure "Ad Hoc Distributed Queries",1
           reconfigure

           复制表结构和数据: 

           select * into 数据库B.dbo.Department 
           from opendatasource('SQLOLEDB','Data Source=ip|主机名\实例;User ID=sa;Password=******').数据库A.dbo.Department 

           只复制表结构: 同情形一处理

           只复制部分字段:同情形一处理

           完成复制表工作后,需要关闭相关配置(注意顺序):

          exec sp_configure "Ad Hoc Distributed Queries",0
          reconfigure
          exec sp_configure "show advanced options",0
          reconfigure