sql - 如何在 SQL Server 中使用 OUTPUT 将多个列插入到表中?

标签 sql sql-server output-clause

向下滚动到输出部分。它给了我一个红色下划线。我想插入到 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/

相关文章:

c# - ADO 存储过程缺少参数错误...

sql-server - SQL Server : Multiple Output Clauses

sql-server - 输出列不在目标表中?

sql - 连接两个表,以便结果显示在多列中

MySQL 查询获取用户的所有好友,包括他们之间最后发送的消息

sql - 从SQL Server中的表创建表

c# - 如何从 json 数组中读取每个数据并将其分配给 SQL Server IN 子句

sql - 慢查询 - 帮助优化

sql - 当多列数据在某些列中为空时,如何获取单行数据?

sql-server - SQL Server 输出子句