这是什么问题?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