这有什么问题?
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE No_Projet=@no_Projet)> 0
SET @error=1
END IF
答案 0 :(得分:6)
END IF
不正确。
这样做:
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE No_Projet=@no_Projet)> 0
SET @error=1
或者这个:
DECLARE @error int
If (SELECT ID_Projet FROM tblProjet WHERE No_Projet=@no_Projet)> 0
Begin
SET @error=1
End
检查HERE以获取文档。
如果您试图查看具有该限制的行数,您应该这样做:
DECLARE @error int
If (SELECT count(ID_Projet) FROM tblProjet WHERE No_Projet=@no_Projet)> 0
Begin
SET @error=1
End
答案 1 :(得分:3)
END IF不是条件语句的T-SQL语法。
DECLARE @error int
IF (SELECT COUNT(ID_Projet) FROM tblProjet WHERE No_Projet=@no_Projet)> 0
BEGIN
SET @error=1
END
编辑:
由于这只检查至少一行,因此您应该使用EXISTS功能而不是COUNT。这样效率要高得多,如果ID_Project可以为空,则需要在EXISTS查询中添加另一个WHERE子句,以便添加“AND ID_Projet IS NOT NULL”,因为COUNT(NULL)= 0
DECLARE @error int
IF EXISTS(SELECT ID_Projet FROM tblProjet WHERE No_Projet=@no_Projet)
BEGIN
SET @error=1
END