Luk*_*101 4 c# sql-server-2008
这里我有一个插入行的存储过程,但是如何使它返回最后插入的id而不进行另一个查询
CREATE PROCEDURE [dbo].[spInsertCriteriaItem]
@GroupID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
insert into CriteriaItem (CriteriaGroupID) VALUES(@GroupID)
--I don't want to make another query here
END
Run Code Online (Sandbox Code Playgroud)
是否有可能做到这一点
不知道你的交易是什么而没有额外的查询,但如果你想要来自数据库的数据,你必须查询它。
CREATE PROCEDURE [dbo].[spInsertCriteriaItem]
@GroupID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
insert into CriteriaItem (CriteriaGroupID) VALUES(@GroupID);
SELECT SCOPE_IDENTITY();
END
Run Code Online (Sandbox Code Playgroud)
使用Sql Server,您可以使用OUTPUT子句.
就像是
DECLARE @CriteriaItem TABLE (
ID INT IDENTITY (1,1),
CriteriaGroupID INT
)
insert into @CriteriaItem (CriteriaGroupID)
OUTPUT INSERTED.ID
VALUES(1)
Run Code Online (Sandbox Code Playgroud)