嗨,我有一个存储过程,我在其中插入一行而不是选择该行的 Id。
insert into tTest
( loca
,name
) values (
@loc
,@name
);
select id from tTest where name=@name;
我想知道是否有一种方法可以将其组合成一个语句。我可以在其中选择新行的 Id 并同时插入行。请告诉我。谢谢
嗨,我有一个存储过程,我在其中插入一行而不是选择该行的 Id。
insert into tTest
( loca
,name
) values (
@loc
,@name
);
select id from tTest where name=@name;
我想知道是否有一种方法可以将其组合成一个语句。我可以在其中选择新行的 Id 并同时插入行。请告诉我。谢谢
您的格式对我来说绝对是奇怪的,但请尝试:
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
查看 SQL ServerOUTPUT
子句:http ://technet.microsoft.com/en-us/library/ms177564.aspx