我希望用户在网站上注册&如果他的电子邮件已经存在,则不应添加他的数据。
现在这是我使用的功能:
IF exists( SELECT SU_ID, SU_Email
FROM SystemUser
WHERE (SU_Email = @email)
)
Begin
return 0
END
else
begin
return -1
end
但即使select语句返回一个值,它也不会返回0&返回-1。 我究竟做错了什么 ?
答案 0 :(得分:2)
试试这个
DECLARE @FOUND INT
SET @FOUND = (SELECT COUNT(*) AS F FROM SystemUser WHERE (SU_Email = @email))
IF @FOUND > 0 THEN
RETURN 0
ELSE
RETURN -1
答案 1 :(得分:1)
尝试插入(如果不存在)
IF Not exists( SELECT * FROM SystemUser WHERE SU_Email = @email)
Begin
--Insert statment here
END
答案 2 :(得分:1)
当我们编写一个函数时,我们也声明了一个返回变量,你错过了,请按照下面的代码
Create function CheckUser(@Email @Varchar(50))
RETURNS Bit
DECLARE @ans bit -- Declare a bit variable
IF exists( SELECT SU_ID, SU_Email
FROM SystemUser
WHERE (SU_Email = @email)
)
Begin
set @ans = 1
END
else
Begin
set @ans = 0
End
RETURNS @ans
答案 3 :(得分:1)
在SQL Server数据列中将Unique定义为约束。 处理相同的异常。