我可以使用OUTPUT在對錶進行更新時生成行前值和行後值。我可以將這些值放入表格中。我可以使用Update命令中的output子句生成2行
但是他們以單排進入表格。
我需要將前面的值作爲一行,將後面的值作爲新行。
所以這段代碼目前不適合我,但它顯示了我正在嘗試做的事情。有沒有辦法使用OUTPUT來做到這一點。
update dbo.table1
set employee = employee + '_updated'
OUTPUT 'd',DELETED.* INTO dbo.table2,
OUTPUT 'i',INSERTED.* INTO dbo.table2,
WHERE id = 4 OR id = 2;
這個片段下方的作品,但只創建一個單行:
update dbo.table1
set employee = employee + '_updated'
OUTPUT 'd', DELETED.*, 'i', INSERTED.* INTO dbo.table2,
WHERE id = 4 OR id = 2;
我可以使用觸發器做到這一點,但不是在這種情況下允許的。
我可以做手工(選擇什麼,我要更新到表2,然後做更新...)
任何提示或提示讚賞如何只使用只輸出在做更新?
RGDS,戴夫
我不相信SQL Server在這種語句中支持多輸出子句。 –
你可以輸出到表變量,然後做一個選擇/ UNION轉換成單獨的行,作爲一個單獨的步驟,如果這真的是一個理智的事情要做(幾乎總是,所有的數據是更明智的在單行上,否則你經常需要有效地重建這樣的事情,但必須手動重新關聯插入和刪除的行) –
@GordonLinoff是絕對正確的。超過1個輸出沒有意義。 –