3

如果用户名存在,如何返回 1,否则返回 0?这是我尝试过的。

IF EXISTS (SELECT * FROM [User] WHERE UserName = @UserName and EmailID=@EmailID) 
    begin
      return 1;
    end
     else
      begin
    declare @CreatedOn datetime
    select @CreatedOn = getdate()
    insert into [User](UserName,Password,EmailID,ContactNo,CreatedOn) values(@UserName,@Password,@EmailID,@ContactNo,@CreatedOn)
4

6 回答 6

3
CREATE PROCEDURE CheckUserExists
AS
    @UserName NVARCHAR(MAX),
    @Email NVARCHAR(MAX)
BEGIN    
    IF EXISTS (SELECT 1 FROM [User] WHERE UserName = @UserName OR EmailID=@EmailID) 
    BEGIN
        RETURN 1
    END
    ELSE BEGIN
        RETURN 0    
    END
END
于 2012-06-20T11:31:16.670 回答
2

也许你可以试试这个查询:

Select count(*) from [user] where  UserName = @UserName and EmailID=@EmailID

如果用户名存在 count(*) 将大于 0

于 2012-06-20T11:21:06.613 回答
0

尝试这个:

IF EXISTS (SELECT 1 FROM [User] WHERE UserName = @UserName and EmailID=@EmailID) 
    begin
      return 1;
    end
     else
       return 0;
于 2012-06-20T11:32:04.157 回答
0
/* Execute the SP As*/
DECLARE @return_value int
EXEC    @return_value = [dbo].[CheckUserExists]
Select @return_value

/*STORED PROCEDURE*/
CREATE PROCEDURE CheckUserExists
AS
    @UserName NVARCHAR(MAX),
    @Password NVARCHAR(MAX)
    @EmailID NVARCHAR(MAX),
    @ContactNo NVARCHAR(MAX)
BEGIN

IF EXISTS (SELECT 1 FROM [User] WHERE UserName = @UserName and EmailID=@EmailID) 
    BEGIN
      RETURN 1;
    END
     ELSE
      BEGIN
        DECLARE @CreatedOn DATETIME
        SELECT @CreatedOn = GETDATE()
        INSERT INTO [User](UserName,Password,EmailID,ContactNo,CreatedOn) 
        VALUES(@UserName,@Password,@EmailID,@ContactNo,@CreatedOn)
        RETURN 0;
END
于 2012-06-20T11:40:06.667 回答
0

我在这里看到了一个更大的问题。你说你想知道用户是否存在。但是查询显示了一个副作用,如果用户不存在,您将在同一个调用中创建用户。这些应该是单独的 sqlcommands。一个用于查询/读取,另一个用于命令/插入。

确定用户是否存在一个简单的select 1 from [users] where [username] = @user就足够了。如果返回任何 (1?) 行,则用户存在,否则用户不存在。

然后您可以发出命令来创建用户

insert into [User](UserName,Password,EmailID,ContactNo,CreatedOn) values(@UserName,@Password,@EmailID,@ContactNo,getdate())
于 2012-06-20T11:24:28.057 回答
0

创建过程 CheckUserExists AS @UserName NVARCHAR(MAX), @Email NVARCHAR(MAX) BEGIN
declare @usercount int

Select @usercount = count(UserName) from [user] where  UserName = @UserName and EmailID=@EmailID

IF (@usercount = 1) 
BEGIN
    RETURN 1
END
ELSE BEGIN
    RETURN 0    
END

结尾

于 2012-06-20T13:25:00.203 回答