繁体   English   中英

从交易中的第一个表获取ID

[英]Get Id from first table in transaction

我有这两个表 图片

并且我需要进行事务处理以在此表中输入数据。 如何获取在firstTable中输入的ID,并在第二个表中将其设置为外键FirstTableId?

BEGIN TRANSACTION
INSERT INTO FirsTable (Name) VALUES ('example1')

INSERT INTO SecondTable (Name, FirstTableId) VALUES ('example2', ?)

COMMIT TRANSACTION

考虑到id是一个identity ,请使用@@IDENTITY作为下一步:

BEGIN TRANSACTION
INSERT INTO FirsTable (Name) VALUES ('example1')

INSERT INTO SecondTable (Name, FirstTableId) VALUES ('example2', @@IDENTITY)

COMMIT TRANSACTION 

有关更多详细信息

更新: -

对于非身份列,请使用表变量通过使用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

有关更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM