小编Mat*_*eri的帖子

如何检索 INSERT INTO [table] SELECT [col1, ...] 中完成的所有插入的 SCOPE_IDENTITY

假设我有一个临时表,其中包含一些列,其中一个列专门用于插入发票的标识列,其他列用于插入发票数据本身。如下表:

CREATE TABLE #InvoiceItems
(
    RowNumber INT, -- Used for inserting new invoice
    SaleID INT,    -- Used for inserting new invoice
    BuyerID INT,   -- Used for inserting new invoice
    InvoiceID INT  -- Intended for PK of the invoice added after inserting it
);
Run Code Online (Sandbox Code Playgroud)

我使用类似以下内容将数据插入发票表

INSERT INTO [Invoice] 
    SELECT [col1, ...] 
    FROM #InvoiceItems
Run Code Online (Sandbox Code Playgroud)

如何InvoiceID在使用临时表将表数据插入发票表时填充列?我了解SCOPE_IDENTITY()函数,但它仅返回最后插入的 PK,这并不真正适合我的需要。

我也可以使用 awhile来一一执行此操作,但由于我计划插入的数据量非常大,我觉得它不会是最优化的选项。

感谢您提前的答复。

sql database sql-server

1
推荐指数
1
解决办法
194
查看次数

标签 统计

database ×1

sql ×1

sql-server ×1