Sql Server Если выбрано условие - PullRequest
1 голос
/ 10 февраля 2012

Что с этим не так?

  DECLARE @error int

  If (SELECT ID_Projet FROM tblProjet WHERE No_Projet=@no_Projet)> 0
     SET @error=1
  END IF

Ответы [ 2 ]

6 голосов
/ 10 февраля 2012

Неверный 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

Проверьте ЗДЕСЬ для документации.


Если вы пытаетесь увидеть количество строк с этим ограничением, вы должны сделать это так:

 DECLARE @error int

  If (SELECT count(ID_Projet) FROM tblProjet WHERE No_Projet=@no_Projet)> 0
  Begin
     SET @error=1
  End
3 голосов
/ 10 февраля 2012

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 обнуляется, вам нужно добавить еще одно предложение WHERE в запрос EXISTS, чтобы добавить «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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...