【问题标题】:T-SQL - Insert multiple records into Parent and Child Tables [duplicate]T-SQL - 将多条记录插入父表和子表[重复]
【发布时间】:2019-03-10 06:18:11
【问题描述】:

我想编写一个程序来在相关表中添加多个父记录和子记录。这是您在 Customer 表中添加多个客户并将 Order 项目添加到 CustomerOrder 表中所做的事情。

我知道流程如下:

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

我正在使用 Table 类型参数将记录插入到 Customer 表中,并且 Customer 表具有自动递增 ID, 如何将此自动递增的客户 ID 传递给 Order 表?

【问题讨论】:

    标签: sql-server


    【解决方案1】:

    如何将此自动递增的客户 ID 传递到 Order 表?

    您可以使用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子句的更多详细信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      相关资源
      最近更新 更多