Stored procedures 用于添加应用程序用户MS SQL 2012的存储过程
我正在尝试为一个查询编写一个存储过程,用于将用户添加到表中。在成功和失败期间,我很难捕获返回值 用户表中的用户名列定义为具有唯一约束 这是存储过程的概要。 存储过程名称:CreateUser 参数 @用户名varchar64 @名字varchar64 @姓氏varchar64 @MD5密码varchar64 @访问控制int 如果用户已存在,则返回标识,-1,或者-@@ERROR Integer 下面是我编写的存储过程,但似乎无法捕获返回值部分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
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个小时过后,我会补充问题的答案。