我有两个表,我想同时提交,这两个表都有唯一的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)");
您可以使用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)