Необходимо ввести INNER JOIN в набор результатов, возвращаемый UPDATE OUTPUT, с другой таблицей и результатами возврата. Возможно ли это?
Вот небольшой пример:
CREATE TABLE [dbo].[Customers]
(
[CustomerId] [int],
[CustomerName] [nvarchar](50)
)
GO
CREATE TABLE [dbo].[Orders]
(
[OrderId] [int],
[OrderName] [nvarchar](50)
)
GO
CREATE TABLE [dbo].[CustomerOrders]
(
[CustomerId] [int],
[OrderId] [int]
)
GO
INSERT INTO CustomerOrders (CustomerId, OrderId) VALUES (1, 1)
INSERT INTO CustomerOrders (CustomerId, OrderId) VALUES (1, 2)
INSERT INTO CustomerOrders (CustomerId, OrderId) VALUES (2, 1)
GO
Необходимо обновить OrderId в таблице CustomerOrders и вернуть имена клиентов, всего за 1 снимок. Пока я могу только вернуть CustomerIds:
UPDATE CustomerOrders SET OrderId=NULL
OUTPUT Deleted.CustomerId
WHERE OrderId='1'