我正在尝试整理来自多个数据库的数据集。我有两个版本的同一个数据库都包含不同的数据集。我想要做的是从一个数据库中的表中获取数据并将其插入到其他数据库中。
在插入时,我需要在各种不同的表中调整各种不同的ID。 PK将自动分配给添加到每个表的行,我需要针对原始PK记录这些行,以便在其他表中插入正确的值。所以我创建了另一个表来插入原始ID和新ID以供参考。
到目前为止,我已经想出了这个。错误似乎是tr.data_sourceID(无法绑定多部分标识符“tr.data_sourceID”。)但我不确定为什么会这样?
DECLARE @data_source_var TABLE
(
data_sourceID bigint
,new_data_sourceID bigint
);
INSERT INTO dbo.tbl_data_source(data_source_dir, data_source_path, data_source_name, data_source_type, create_hour, create_minute, create_day, create_month, create_year,
upload_complete, lastFieldUsed, errorCleared, errorClearedBy, errorClearedOn, queueSize, createDate, taskID)
OUTPUT tr.data_sourceID, INSERTED.data_sourceID INTO @data_source_var (data_sourceID, new_data_sourceID)
SELECT data_source_dir, data_source_path, data_source_name, data_source_type, create_hour, create_minute, create_day, create_month, create_year,
upload_complete, lastFieldUsed, errorCleared, errorClearedBy, errorClearedOn, queueSize, createDate, taskID
FROM otherdb.dbo.tbl_data_source tr
看过这个(http://stackoverflow.com/questions/5365629/using-merge-output-to-get-mapping-between-source-id-and-target-id)似乎MERGE会这样做很好。然而,2005年没有MERGE。仍然在寻找2005年的解决方案。