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
/* 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

ここにもっと大きな問題があります。ユーザーが存在するかどうかを知りたいと述べました。ただし、クエリには副作用があります。ユーザーが存在しない場合は、同じ呼び出しでユーザーを作成します。これらは個別のsqlコマンドである必要があります。1つはクエリ/読み取り用で、もう1つはコマンド/挿入用です。

ユーザーが存在するかどうかを判断するには、単純なもの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

これを試して:

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

CREATE PROCEDURE CheckUserExists AS @UserName NVARCHAR(MAX)、@ Email NVARCHAR(MAX)
BEGINdeclare @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 に答える