【发布时间】:2018-06-08 10:53:00
【问题描述】:
如何将数据从一个 SQL Server 数据复制到另一个。我正在尝试将表数据从 server1 复制到 server2。在 server1.table1 中,如果我有 10 行并添加了另外 5 行,则表中的数据会被添加/删除,一段时间后前 10 行会被删除。另一方面,我正在复制到另一台服务器 server2.table2 中。我正在使用 EXCEPT 函数复制 int data2 is server2。我的以下代码是。
对于服务器 1。
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
但是我用过Identity insert。
【问题讨论】:
-
@B3S :任何建议我该怎么做,我在 server1 中的表 Data1 得到更新,一些数据也被删除。但我需要将所有数据放入我的 server2 表 Data2 中。所以我使用了EXCEPT。但问题在于 Identity 列,因为在我的 server1,table - Data1 中,很少有数据被删除,或者当新数据被添加时,它以 id -11 开头,例如。我需要将添加到我 server1 的 Data1 中的最后一个数据复制到 server2 中。
标签: sql sql-server sql-scripts