簡體   English   中英

如何在SQL Server中使用OUTPUT將多列插入表中?

[英]How do I insert multiple columns into a table using OUTPUT in SQL Server?

向下滾動到OUTPUT部分。 這給了我一個紅色的下划線。 我想將插入到@CreditDebitAdjustment的ID與@CreditDebitAdjustment一起InsertedCreditDebitAdjustmentIDs表中。 我該怎么做呢?

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 

INSERT INTO語句之后立即放置OUTPUT clause

INSERT INTO TableName (Column1, Column2, Column3.....)
OUTPUT inserted.Column1 , inserted.Column2 INTO @TableName
SELECT  Column1, Column2, Column3.....
FROM Table_name

另外,我建議您將XML ShreddingINSERT操作保留在單獨的語句中。 XML中的任何麻煩問題都可以給您帶來很多麻煩:)

進行切碎時,將結果分別插入到臨時表中,一旦滿意,則將其插入到目標表中。

它去了:

TARGET (insert/update etc.)
OUTPUT (direct or into another table)
SOURCE (select/values etc.)

因此,您只需要切換順序:

INSERT dbo.tablename(column1, column2, ...)
OUTPUT INSERTED.col1, INSERTED.col2, ... [INTO ...]
SELECT @var1, col1, etc. FROM elsewhere...

有關示例,請參見OUTPUT子句(Transact-SQL)文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM