Я пытаюсь сопоставить наборы данных из нескольких баз данных.У меня есть две версии одной и той же базы данных, которые содержат разные наборы данных.Я хотел бы взять данные из таблиц в одной базе данных и вставить их в другую.
При вставке мне нужно настроить различные идентификаторы в разных таблицах.PK будут автоматически назначены на строки, добавленные в каждую таблицу, и мне нужно записать их для исходных PK, чтобы вставить правильные значения в другие таблицы.Поэтому я создал еще одну таблицу для вставки исходных и новых идентификаторов для справки.
Я уже придумал это.Похоже, ошибка: 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
Прочитав это (/6971103/ispolzovanie-merge-output-dlya-otobrazheniya-mezhdu-source-id-i-target-id)кажется, что MERGE сделает это хорошо. Однако в 2005 году MERGE не было. Все еще ищем решение 2005 года.