假设我有两个关系表:表A和表B。
表B具有表A的外键,因此要在B中插入行,我们首先需要在A中插入行。 所以我在A中插入了第一行:
插入A(c1,c2)值(v1,v2)
我想要的是获取插入行的ID,以便在我插入表b时将其用作外键。该怎么做?
在寻找我发现here的解决方案时,我需要声明一个新表:
declare @KEY table(KEY int)
Insert into A (c1,c2)
Output inserted.Id into @kEY
values(v1,v2)
但是当我尝试使用它时:
Insert into B (C1,C2) values(@KEY,v2)
我收到一条错误消息,告知未声明@KEY!
有什么想法吗?
答案 0 :(得分:2)
表变量与标量变量不同。不能将values
子句与表变量一起使用-您需要从中选择:
declare @KEY table(KEY int)
Insert into A (c1,c2)
Output inserted.Id into @kEY
values(v1,v2)
Insert into B (C1)
Select [Key]
From @Key;