我有两个数据库:A和B.
我有一个.dtsx工作使用"传输SQL Server对象任务编辑器"将表从A复制到B.这不是脚本;看起来像附图。
其中一个表的IDENTITY列定义如下:SOMEID INT IDENTITY(1,1) NOT NULL
。
它出现(但我还没有确认),当表从A复制到B时,SomeID列被重写,因此对于同一记录,A和B之间的SOMEID值不匹配。 / p>
复制开始时,B上的表不存在。
这有意义吗?
如何在复制表时强制它们匹配? (我需要在我正在使用的GUI的上下文中回答,而不是脚本)。
请原谅我的描述,因为我不是Windows开发人员,所以我很难谷歌找到答案,因为我不知道正确的术语。
答案 0 :(得分:1)
OleDBDestination中有一个复选框(出于性能原因),将标识插入设置为ON。只需检查它,id列将被写入目的地
答案 1 :(得分:0)
答案 2 :(得分:0)
我一直在使用类似下面的内容:
set identity_insert [USI_MD_TEMP].[dbo].[CS-DISCOUNT EXTID] on
INSERT INTO [USI_MD_TEMP].[dbo].[CS-DISCOUNT EXTID] ([key], [disExtID])
SELECT [Copy of key],[Copy of disExtID]
FROM [USI_MD_TEMP].[dbo].[CS-DISCOUNT EXTID tmp]
set identity_insert [USI_MD_TEMP].[dbo].[CS-DISCOUNT EXTID] off
此处[key]不是主键。