这是我的程序:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspChangeMemberRole]
@TeamID INT,
@MemberID INT,
@MemberRole TINYINT
AS
BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[TeamMember]
SET MemberRole = @MemberRole
WHERE TeamID = @TeamID
AND MemberID = @MemberID;
RETURN @MemberRole;
END
当我执行此程序时,我想返回" MemberRole已成功更改"。
请给我一个如何返回的解决方案
答案 0 :(得分:0)
使用Row Count检查是否存在受影响的行(如果更新成功则识别出来),然后选择一个字符串。
RowCount - 返回受最后一个语句影响的行数。
IF @@ROWCOUNT > 0
BEGIN
SELECT 'Member Role Successfully Chnaged';
END
我认为这个语句不是必需的,因为这是一个输入参数,你可以在proc之外。
return @MemberRole;
答案 1 :(得分:0)
将返回值更改为select,并将输出参数的数据类型替换为varchar。
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[uspChangeMemberRole]
@TeamID INT,
@MemberID INT,
@MemberRole VARCHAR(100) OUTPUT
AS BEGIN
SET NOCOUNT ON;
UPDATE [dbo].[TeamMember] SET MemberRole=@MemberRole WHERE TeamID=@TeamID AND MemberID=@MemberID;
SET @MemberRole = 'MemberRole Successfully Changed.'
SELECT @MemberRole AS 'RETURN';
答案 2 :(得分:0)
我添加了一些概念,可以帮助您了解过程的将如何返回值。