You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将TableA插入生成的ID用于TableB的INSERT语句

解决关联表插入时获取新ID的问题

你可以通过两种方式使用临时表@NEWID中的新ID来插入TableB:

方法一:从临时表查询取值(支持批量插入)

如果TableA可能插入多条数据,这种方法可以一次性将所有新生成的ID对应插入TableB:

DECLARE @NEWID table(NewID Numeric(19, 0));

INSERT [dbo].[TableA] ([Name], [Active]) 
OUTPUT INSERTED.Id INTO @NEWID (NewID)
VALUES ('testtesttest', 1);

-- 从临时表中读取新ID,插入TableB
INSERT [dbo].[TableB] ([Name], [A_Id])
SELECT 'name for b', NewID
FROM @NEWID;

方法二:使用单个变量存储ID(适合单条插入)

如果确定只向TableA插入一行数据,直接用变量存储新ID会更简洁:

DECLARE @NewID Numeric(19, 0);

INSERT [dbo].[TableA] ([Name], [Active]) 
OUTPUT INSERTED.Id INTO @NewID
VALUES ('testtesttest', 1);

INSERT [dbo].[TableB] ([Name], [A_Id])
VALUES ('name for b', @NewID);

两种方式的核心都是获取TableA插入时生成的Id,区别在于是否支持批量场景。

内容的提问来源于stack exchange,提问作者user1094553

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 19:20:35