繁体   English   中英

如何将表数据从一台SQL Server复制到另一台SQL Server?

[英]How to copy table data from one SQL Server into another SQL server?

如何将数据从一个SQL Server数据复制到另一个。 我正在尝试将表数据从server1复制到server2。 在server1.table1中,如果我有10行,又添加了五行,则表中的数据被添加/删除,例如,经过一段时间后,前十行被删除。 另一方面,我正在复制到另一个服务器server2.table2。 我正在使用EXCEPT函数复制int data2是server2。 我的以下代码是。

对于Server1。

CREATE TABLE database1.dbo.Data1
   (MachineId bigint IDENTITY(1,1) PRIMARY KEY,
   MachineName varchar(50) NOT NULL,
    ProgramName varchar(255) NOT NULL,
   );
GO

对于服务器2。

CREATE TABLE database2.dbo.Data2
       (MachineId bigint IDENTITY(1,1) PRIMARY KEY,
       MachineName varchar(50) NOT NULL,
        ProgramName varchar(255) NOT NULL,
       );
GO

 SET IDENTITY_INSERT [Server2].[database2].[dbo].[Data2] ON 
GO
Insert into [Server2].[database2].[dbo].[Data2] SELECT * from [Server1].[database1].[dbo].[Data1] EXCEPT SELECT * from [Server2].[database2].[dbo].[Data2]

但是我得到一个错误:

表'[Server2]。[database2]。[dbo]。[Data2]'中标识列的显式值仅在使用列列表且IDENTITY_INSERT为ON时才能指定

但是我用过它的身份插入。

很明显,您必须定义列定义,并在标识列中插入值,如下所示。 您只需要替换最后一个insert

INSERT INTO [Server2].[database2].[dbo].[Data2] (MachineId, MachineName, ProgramName)
SELECT * FROM [Server1].[database1].[dbo].[Data1] 
EXCEPT 
SELECT * FROM [Server2].[database2].[dbo].[Data2]

注意:这仅是针对您的错误消息的解决方案,希望其余查询能够按您的期望工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM