Я пытаюсь найти лучший способ создать инструкцию SQL (в SQL Server) для дублирования родительской записи и всех записей с детьми. У меня есть пример ниже;SQL для дублирования записей родителей и детей
-- duplicate the order
insert into Orders (CustomerID, EmployeeID, OrderDate, RequiredDate,
ShippedDate, ShipVia, Freight, ShipName, ShipAddress,
ShipCity, ShipRegion, ShipPostalCode, ShipCountry)
select CustomerID, EmployeeID, getdate(), RequiredDate, null, ShipVia,
Freight, ShipName, ShipAddress, ShipCity, ShipRegion,
ShipPostalCode, ShipCountry
from Orders
where OrderID = @OrderID
-- find ID of duplicated order
declare @NewOrderID int;
select @NewOrderID = @@IDENTITY;
-- duplicate order details
insert into "Order Details" (OrderID, ProductID, UnitPrice,
Quantity, Discount)
select @NewOrderID, ProductID, UnitPrice, Quantity, Discount
from "Order Details"
where OrderID = @OrderID
Это прекрасно работает для дублирования детского стола «Сведения о заказе». Но мне нужна возможность затем дублировать детей «Детали заказа», но не вижу возможности изолировать личность каждой из этих записей и перейти к еще одной таблице. Есть ли у кого-нибудь какие-либо предложения о том, как это можно легко осуществить?
Используйте предложение OUTPUT, как предложил Гидил. Функциональность OUTPUT предназначена для такого рода обработки. –