Stored procedures 用于添加应用程序用户MS SQL 2012的存储过程

Stored procedures 用于添加应用程序用户MS SQL 2012的存储过程,stored-procedures,return-value,Stored Procedures,Return Value,我正在尝试为一个查询编写一个存储过程,用于将用户添加到表中。在成功和失败期间,我很难捕获返回值 用户表中的用户名列定义为具有唯一约束 这是存储过程的概要。 存储过程名称:CreateUser 参数 @用户名varchar64 @名字varchar64 @姓氏varchar64 @MD5密码varchar64 @访问控制int 如果用户已存在,则返回标识,-1,或者-@@ERROR Integer 下面是我编写的存储过程,但似乎无法捕获返回值部分 ALTER PROCEDURE [dbo].[Cr

我正在尝试为一个查询编写一个存储过程,用于将用户添加到表中。在成功和失败期间,我很难捕获返回值

用户表中的用户名列定义为具有唯一约束

这是存储过程的概要。 存储过程名称:CreateUser

参数

@用户名varchar64

@名字varchar64

@姓氏varchar64

@MD5密码varchar64

@访问控制int

如果用户已存在,则返回标识,-1,或者-@@ERROR Integer

下面是我编写的存储过程,但似乎无法捕获返回值部分

ALTER PROCEDURE [dbo].[CreateUser] 
 -- Add the parameters for the stored procedure here
@username varchar(64) = NULL, 
@firstname varchar(64) = NULL,
@lastname varchar(64) = NULL,
@MD5Password varchar(255) = NULL,
@Access_Control int = -10
AS
DECLARE @return_code int
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;


-- Insert statements for procedure here
INSERT INTO [dbo].[User] ([username], [firstname], [lastname], [password], [access_control]) VALUES (@username, @firstname, @lastname, @MD5Password, @Access_Control)
 IF(@@ERROR <> 0 )
    BEGIN
        PRINT N'User with this name already exists. Username must be unique' + @@ERROR
        SET @return_code = -1
    END
 ELSE
    BEGIN
        SET @return_code = SCOPE_IDENTITY()
    END

RETURN @return_code

END

如果成功,我想将返回值设置为标识-如果用户已经存在,则返回1;如果发生内部错误,则返回某个错误值。如何在存储过程中捕获此行为。提前谢谢。

我已经解决了这个问题。我已经更新了存储过程。也许有更好的方法,如果有人能强调这一点,我将不胜感激。我将在下面再次添加存储过程的代码。我无法添加新代码,因为我将自己回答它,并且在提问后至少8小时内我不允许回答我的问题。8个小时过后,我会补充问题的答案。