這是什麼問題?Sql Server如果條件白選擇
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE [email protected]_Projet)> 0
SET @error=1
END IF
這是什麼問題?Sql Server如果條件白選擇
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE [email protected]_Projet)> 0
SET @error=1
END IF
END IF
不正確。
做這樣的:
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE [email protected]_Projet)> 0
SET @error=1
或本:
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE [email protected]_Projet)> 0
Begin
SET @error=1
End
檢查HERE的文檔。
如果你想看到該限制的行數,你應該做這樣的:
DECLARE @error int
If (SELECT count(ID_Projet) FROM tblProjet WHERE [email protected]_Projet)> 0
Begin
SET @error=1
End
+1正確的答案,如果我可以另一個+ +因爲打字速度比我快! – GarethD 2012-02-10 16:48:24
非常感謝你! – FrankSharp 2012-02-10 16:59:47
如果您只是檢查條件是否滿足,那麼它應該使用IF EXISTS,因爲表掃描僅進行第一次匹配,而不是全表掃描來計數記錄。 – GarethD 2012-02-10 17:11:10
END IF不是條件語句的T-SQL語法。
DECLARE @error int
IF (SELECT COUNT(ID_Projet) FROM tblProjet WHERE [email protected]_Projet)> 0
BEGIN
SET @error=1
END
編輯:
由於這是隻檢查至少一排,你應該使用EXISTS功能,而不是COUNT。這是更有效,如果ID_Project爲空,你將需要進一步增加WHERE子句EXISTS的查詢增加「並ID_Projet IS NOT NULL」因爲COUNT(NULL)= 0
DECLARE @error int
IF EXISTS(SELECT ID_Projet FROM tblProjet WHERE [email protected]_Projet)
BEGIN
SET @error=1
END
它是什麼應該做?你試圖測試是否存在匹配行的'0'或測試'ID_Projet'值是否爲'> 0'? – 2012-02-10 16:45:02
您是否收到錯誤?它是什麼? – Curt 2012-02-10 16:45:25
錯誤是什麼? – Diego 2012-02-10 16:45:30