您好我有一个存储过程,我在这里插入一行而不是选择该行的Id。
insert into tTest
( loca
,name
) values (
@loc
,@name
);
select id from tTest where name=@name;
我想知道是否有办法将其合并为一个陈述。我可以在哪里选择新行的Id以及同时插入行。请告诉我。谢谢
答案 0 :(得分:3)
您的格式对我来说绝对奇怪,但请尝试:
insert into tTest
( loca
,name
)
OUTPUT inserted.id
values (
@loc
,@name
);
如果您稍后需要使用该值,则可以删除“一个声明”的要求,因为您需要:
使用SCOPE_IDENTITY()
DECLARE @id INT;
insert into tTest
( loca
,name
)
values (
@loc
,@name
);
SELECT @id = SCOPE_IDENTITY();
过度杀戮并使用表格变量
DECLARE @idTable TABLE(ID INT);
insert into tTest
( loca
,name
)
OUTPUT inserted.id INTO @idTable
values (
@loc
,@name
);
-- reference @idTable later
答案 1 :(得分:0)
查看SQL Server OUTPUT
子句:http://technet.microsoft.com/en-us/library/ms177564.aspx