使用一个提交插入多个表

问题描述 投票:0回答:1

我有两个表,我想同时提交,这两个表都有唯一的AI ID。我使用表A中的主键作为表B中的外键。有没有办法让我在提交时从表A中获取新创建的ID并在表B中使用外键?

我试过这个,但没有任何东西插入第二(结果)表,

$result = sqlsrv_query($conn, "
        DECLARE @OutputTbl TABLE (ID INT)
        INSERT INTO Parts (PartNumber, Description, Manufacturer, TestDate, VendorDescription, ReceiptNo)
        OUTPUT INSERTED.PartID INTO @OutputTbl(ID)
        VALUES
        ('".$_POST['PartNumberSubmit']."','".$_POST['DescriptionSubmit']."','".$_POST['ManufacturerSubmit']."','".$_POST['TestDateSubmit']."','".$_POST['VendorDescriptionSubmit']."','".$_POST['ReceiptNoSubmit']."')
        DECLARE @Id INT
        SET @Id = (SELECT Id from @OutputTbl)
        INSERT INTO Results (Test, Result, PartID)
        VALUES ('Some', 'Thing', @Id)");
php sql-server
1个回答
1
投票

您可以使用OUTPUT

DECLARE @OutputTbl TABLE (ID INT)

INSERT INTO tab_1(Col1, Col2)
OUTPUT INSERTED.ID INTO @OutputTbl(ID) --the newly created Id
VALUES ('Yatrix', '1234')

DECLARE @Id INT 
SET @Id = (SELECT Id from @OutputTbl)

INSERT INTO tab_2 (Col1, Col2, tab_1_FK)
VALUES ('some', 'thing', @Id)
© www.soinside.com 2019 - 2024. All rights reserved.