2012-09-04 20 views
0

我希望用戶在網站&中註冊,如果他的電子郵件已存在,則不應添加他的數據。如何防止數據被添加,如果它已經存在於數據庫中

現在,這是我使用的功能:

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

使電子郵件表主鍵,完成。 –

回答

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 
1

嘗試,如果不存在

IF Not exists(SELECT * FROM SystemUser WHERE SU_Email = @email) 
Begin 
    --Insert statment here 
END 
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

在SQL Server數據列中定義唯一約束。 處理相同的異常。

相關問題