OUTPUT 子句现在是你的朋友了:
INSERT INTO steam.DocumentGeographies (Col1, Col2, Col3)
OUTPUT inserted.*
(SELECT
Col1,
Col2,
'Something modified',
FROM dbo.Table
WHERE Col10 = 66)
您可以通过使用INTO 子句指定目标表或将查询包装为子查询来插入OUTPUT 的结果:
INTO 子句
当您想将相同的数据插入两个表时,这很有用。您始终可以在 OUTPUT 子句中列出所需的文件(inserted.Col1,inserted.Col2)
INSERT INTO steam.DocumentGeographies (Col1, Col2, Col3)
OUTPUT inserted.* INTO DestinationTableName(Col1, Col2, Col3)
(SELECT
Col1,
Col2,
'Something modified',
FROM dbo.Table
WHERE Col10 = 66)
子查询
当您想将 OUTPUT 连接到另一个表或进行计算(如求和或计数值)并将这些结果插入另一个表时,这很有用。
INSERT INTO DestinationTableName
(Col1, Col2, Col3)
SELECT Col1, Col2, Col3 FROM (
INSERT INTO steam.DocumentGeographies (Col1, Col2, Col3)
OUTPUT inserted.*
(SELECT
Col1,
Col2,
'Something modified',
FROM dbo.Table
WHERE Col10 = 66)
) TMP