T-SQL-将多个记录插入父表和子表

时间:2019-03-10 06:18:11

标签: sql-server

我想编写一个过程来在相关表中添加带有子记录的多个父记录。这是您要在“客户”表中添加多个“客户”并将“订单”项添加到“ CustomerOrder”表中的事情。

我知道流程如下:

  1. 使用“插入-选择”将多个“客户”插入“客户”表。
  2. 获取每个客户记录的主键(假设它是 自动编号)
  3. 循环:添加多个订单记录,并将外键设置为 上面步骤2中的主键。
  4. (可能)使用任何内容更新父发票父记录 从子记录(例如总数)中导出。

我正在使用表类型参数将记录插入到客户表中,并且客户表具有自动增量ID, 如何将这个自动递增的客户ID传递到“订单”表?

1 个答案:

答案 0 :(得分:0)

  

如何将这个自动递增的客户ID传递到“订单”表?

您可以使用OUTPUT子句获取插入的ID。

您可以参考以下示例。

CREATE TABLE Customer 
  ( 
     ID      INT IDENTITY, 
     NAME    VARCHAR(100), 
     ADDRESS VARCHAR(100), 
     PhoneNo VARCHAR(100) 
  ) 

DECLARE @tblInsertdIds TABLE 
  ( 
     ID INT 
  ) 

INSERT INTO Customer 
            (Name, 
             Address, 
             PhoneNo) 
OUTPUT      INSERTED.ID 
INTO @tblInsertdIds(ID) 
VALUES      ('C1', 
             'Address 1', 
             '123123123'), 
            ('c2', 
             'Address 2', 
             '34234324') 
--Get the newly inserted ids

SELECT * 
FROM   @tblInsertdIds 

Online Demo

您可以在OUTPUT Clause (Transact-SQL)上查看有关OUTPUT子句的更多详细信息