none
comando condicional do T-SQL - dúvida RRS feed

  • Pergunta

  • Ola pessoal
    no Sql server temos a instrução if, if else. Na instrução if else, como faria para partir da negação, em vez da afirmação que é casos mais comuns, por ex:
    if Não for verdadeiro
        executa Não verdadeira ou aborta
    else
        prossegue normalmente

    Parece banal, mas não encontrei no material que tenho qualquer referencia de como fazer isso, experimentei fazer

    DECLARE @contador int
    SET NOCOUNT OFF
    SELEC @contador = count(*)
      FROM tabela
    WHERE id = @id
    if Not  @contador = 0
            -- processegue normalmente
    else
        RAISERROR(50.000, .....)

    Neste exemplo dá erro de sintaxe no if, por causa do not.
    takeo.

    .


      , executa verdaediferd
    domingo, 29 de junho de 2008 20:17

Respostas

  • Boa Tarde,

     

    Basta colocar um parêntese. Ex:

     

    Code Snippet

    DECLARE @contador int
    SET @contador = 1

    IF Not (@contador = 0)
     PRINT 'Passou no IF'
    ELSE
     PRINT 'Passou no ELSE'

     

    Acredito que o problema esteja no seu SELEC digitado incorretamente.

     

    [ ]s,

     

    Gustavo

     

    domingo, 29 de junho de 2008 20:36

Todas as Respostas

  • Boa Tarde,

     

    Basta colocar um parêntese. Ex:

     

    Code Snippet

    DECLARE @contador int
    SET @contador = 1

    IF Not (@contador = 0)
     PRINT 'Passou no IF'
    ELSE
     PRINT 'Passou no ELSE'

     

    Acredito que o problema esteja no seu SELEC digitado incorretamente.

     

    [ ]s,

     

    Gustavo

     

    domingo, 29 de junho de 2008 20:36
  • takeo, teoricamente funciona sim, veja este exemplo:

     

    Code Snippet

    DECLARE @contador int

    SET @contador =0

    if Not @contador = 0

      select 1

    else

      select 0

     

     

    Agora, uma outra solução seria:

     

    Code Snippet

    DECLARE @contador int

    SET @contador =0

    if @contador <> 0

       select 1

    else

       select 0

     

     

    Qualque dúvida é só postar.

     

    [ ]s.

    domingo, 29 de junho de 2008 20:38
    Moderador