向下滚动到输出部分。它给了我一个红色下划线。我想插入到 InsertedCreditDebitAdjustmentIDs
表中,将 ID 与 InvoiceNum 一起插入到 @CreditDebitAdjustment
中。我该怎么做?
DECLARE @InsertedCreditDebitAdjustmentIDs TABLE
(
ID INT,
InvoiceNumber VARCHAR(50)
)
INSERT INTO @CreditDebitAdjustment ( col1, col2, ...)
SELECT @ImportedFileID AS '@ImportedFileID',
tbl.col.value('(Purpose/text())[1]', 'VARCHAR(500)') AS Purpose,
etc.
FROM @XML.nodes('/CreditDebitAdjustments/CreditDebitAdjustment') AS tbl (col)
OUTPUT INSERTED.CreditDebitAdjustmentID, etc. INTO @InsertedCreditDebitAdjustmentIDs
最佳答案
把你的 OUTPUT 子句
放在你的 INSERT INTO
语句之后 something lie this....
INSERT INTO TableName (Column1, Column2, Column3.....)
OUTPUT inserted.Column1 , inserted.Column2 INTO @TableName
SELECT Column1, Column2, Column3.....
FROM Table_name
附带说明一下,我建议您将XML Shredding
和您的INSERT
操作放在单独的语句中。 XML 中的任何手帕都会让你做很多清理工作:)
分别进行分解,将结果插入临时表,一旦满意,然后插入目标表。
关于sql - 如何在 SQL Server 中使用 OUTPUT 将多个列插入到表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21097194/