如何检查用户名是否存在

时间:2012-06-20 11:15:13

标签: asp.net sql stored-procedures

如果用户名存在,如何返回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)

6 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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

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

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

insert into [User](UserName,Password,EmailID,ContactNo,CreatedOn) values(@UserName,@Password,@EmailID,@ContactNo,getdate())

答案 3 :(得分:0)

试试这个:

IF EXISTS (SELECT 1 FROM [User] WHERE UserName = @UserName and EmailID=@EmailID) 
    begin
      return 1;
    end
     else
       return 0;

答案 4 :(得分: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

答案 5 :(得分:0)

CREATE PROCEDURE CheckUserExists 如     @UserName NVARCHAR(MAX),     @Email NVARCHAR(MAX) BEGIN
声明@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

END