我对SQL Server存储过程感到困惑,它应该将用户注册到数据库中(如果用户尚未存在).但是,在成功执行该过程后,没有数据插入到Users表中.
如果我直接运行insert语句,它可以工作.
下面是完整的程序代码,在你问我之前,数据库是空的.
--USERS
CREATE PROCEDURE [dbo].[RegisterUser]
@NAME VARCHAR(255),
@PHONENUMBER VARCHAR(255),
@STATUS INT OUT,
@REMAININGDAYS INT OUT
AS
BEGIN
SET NOCOUNT ON;
UPDATE Users WITH (serializable)
SET Name = @NAME
WHERE PhoneNumber LIKE @PHONENUMBER
SET @REMAININGDAYS = 0
IF @@rowcount = 0
BEGIN
INSERT INTO Users (Name, PhoneNumber, RegisterDate)
VALUES (@NAME, @PHONENUMBER, GETDATE())
SET @STATUS = 0
SET @REMAININGDAYS = 40
END
ELSE
BEGIN
DECLARE @USERID BIGINT
DECLARE @EXP DATETIME
SELECT TOP 1
@USERID = USERID
FROM …Run Code Online (Sandbox Code Playgroud)