[英]Stored Proc returns 2 return values
我有一个存储的proc,它首先检查一个条目是否存在,如果存在则进行更新,然后返回行ID,如果不存在,它将插入新记录,然后返回行ID。
执行存储的proc时,我会得到2个返回值,其中一个带有字段'@PersonID',另一个带有'返回值'。 我很确定这是由于IF EXISTS中使用的SELECT语句而发生的,但是,我无法找到一种抑制它的方法,我希望有人可以提供帮助。
ALTER PROCEDURE [dbo].[InsertPerson]
-- Add the parameters for the stored procedure here
@FirstName nvarchar(50),
@LastName nvarchar(50),
@PersonID int OUT
AS
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
IF( EXISTS (SELECT PersonID FROM People
WHERE FirstName = @FirstName AND LastName = @LastName))
BEGIN
SET @PersonID = (SELECT PersonID
FROM People
WHERE FirstName = @FirstName
AND LastName = @LastName)
UPDATE People
SET
FirstName = @FirstName,
LastName = @LastName
WHERE PersonID = @PersonID
END
ELSE
BEGIN
INSERT INTO People (FirstName, LastName) VALUES(@FirstName, @LastName)
SET @PersonID = SCOPE_IDENTITY()
SELECT @PersonID
END
感谢您的快速回复。 我不小心发布了一些不正确的代码,实际存储的过程最后没有SELECT @PersonID。 但是,我认为我错误地将存储的proc标识为我正在处理的问题的根本原因,并且正如响应中所指出的那样,一切正常。
再次感谢您的帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.