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