Вставьте в dest и обновите источник - PullRequest
5 голосов
/ 01 апреля 2011

Можно ли в SQL Server 2008 вставлять данные из исходной таблицы в таблицу dest и одновременно обновлять исходную таблицу @@ identity из таблицы dest?

Пример

Таблица источника:

Id - UniqueId
Name - varchar(10) 
RealId [null] - int 

Таблица Dest

Id - [id] INT identity
Name - varchar(10)  

Я хочу перенести строки из источника в Dest и обновить RealId до значения @@ изТаблица назначения

Я могу изменить источник любым способом, который мне нравится, таблица назначения не может быть изменена.

Какие мои лучшие варианты здесь?

Также обратите внимание,Столбец «Имя» может содержать дубликаты, поэтому я не могу присоединиться к нему.

(Реальные таблицы намного сложнее, но это должно дать представление о том, что я хочу)

1 Ответ

4 голосов
/ 01 апреля 2011

Посмотрите на этот вопрос. Использование merge..output для отображения между source.id и target.id . Вы можете использовать выходные данные слияния для получения табличной переменной со ссылкой между идентификаторами в источнике и цели. Затем вы можете использовать эту таблицу для обновления исходной таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...