小编And*_*hio的帖子

存储过程不会插入数据

我对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)

sql sql-server stored-procedures sql-insert

1
推荐指数
1
解决办法
768
查看次数

标签 统计

sql ×1

sql-insert ×1

sql-server ×1

stored-procedures ×1