Кто-нибудь знает простой способ копирования нескольких строк таблицы и связанных с ней элементов?
В моем упрощенном примере у меня есть две таблицы, одна с таблицей для компаний и одна для их сотрудников, и я хотел бы иметь возможность простым способом клонировать целые компании со всеми их сотрудниками.
[Companies]
- ID (Auto-increment)
- Name
[Employees]
- ID
- CompanyID (Foreign Key)
- Name
Я играл с предложением OUTPUT
, но только что смог вернуть вставленные идентификаторы без ссылки на исходную строку.
Я просто не могу понять, как связать вставленную строку с исходной?
Если оператор вставки возвратил таблицу, подобную этой:
@mappingTable
-InsertedCompanyID
-OriginalCompanyID
Я мог бы выполнить такое заявление, чтобы скопировать всех сотрудников:
INSERT INTO Employees (CompanyID, Name)
SELECT m.InsertedCompanyID, x.Name FROM @mappingTable m
INNER JOIN Employees x (x.CompanyID = m.OriginalCompanyID)
Или я на неверном пути? Есть ли лучший способ сделать это?