我需要进行在此表中输入数据的事务。如何获取在firstTable中输入的Id,并将其设置为第二个表中的外键FirstTableId?
BEGIN TRANSACTION
INSERT INTO FirsTable (Name) VALUES ('example1')
INSERT INTO SecondTable (Name, FirstTableId) VALUES ('example2', ?)
COMMIT TRANSACTION
答案 0 :(得分:2)
考虑id
是identity
,请使用@@IDENTITY
作为下一个: -
BEGIN TRANSACTION
INSERT INTO FirsTable (Name) VALUES ('example1')
INSERT INTO SecondTable (Name, FirstTableId) VALUES ('example2', @@IDENTITY)
COMMIT TRANSACTION
了解更多details。
<强>更新 - 强>
对于非标识列,请使用表变量通过Output
获取ID,如下所示: -
BEGIN TRANSACTION
DECLARE @id int
DECLARE @table table (id int)
INSERT INTO FirsTable (Name)
OUTPUT inserted.id into @table
VALUES ('example1')
SELECT @id = id from @table
INSERT INTO SecondTable (Name, FirstTableId) VALUES ('example2', @id)
COMMIT TRANSACTION
更多details