none
Dúvida no script com IF RRS feed

  • Pergunta

  • Amigos,

     

    não estou conseguindo executar o script abaixo. Ele menciona o erro no primeiro Else. Eu não posso ter um If dentro de outro If?

     

    If @Mes_ultimo_Arq = 12

    DECLARE @ValidArq Int

    DECLARE @Qtde_Arq Int

    Set @Qtde_Arq =(

    Select Count(*)

    From dbo.FileControl

    Where ImportedFileName = @Arq_BA + @Mes_Ultimo_Arq + @Ano + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_RJ + @Mes_Ultimo_Arq + @Ano + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_PE + @Mes_Ultimo_Arq + @Ano + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_MG + @Mes_Ultimo_Arq + @Ano + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    )

    --Select @Qtde_Arq

    If @Qtde_Arq = 4

    set @ValidArq = 1

    Else

    set @ValidArq = 0

     

    Select @ValidArq as ValidArq

    Else --O ERRO ESTÁ AQUI

    DECLARE @ValidArq Int

     

    DECLARE @Qtde_Arq Int

    Set @Qtde_Arq =(

     

    Select Count(*)

    From dbo.FileControl

    Where ImportedFileName = @Arq_BA + @Mes_Ultimo_Arq + @Ano_Ultimo_Arq + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_RJ + @Mes_Ultimo_Arq + @Ano_Ultimo_Arq + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_PE + @Mes_Ultimo_Arq + @Ano_Ultimo_Arq + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    Or ImportedFileName = @Arq_MG + @Mes_Ultimo_Arq + @Ano_Ultimo_Arq + '_' + Rtrim(@Ano_Ultimo_Arq + @Mes + @DiaGeracao) + '.TXT'

    )

    Select @Qtde_Arq

    If @Qtde_Arq = 4

    set @ValidArq = 1

    Else

    set @ValidArq = 0

     

    Select @ValidArq as ValidArq

    sexta-feira, 9 de janeiro de 2009 13:33

Respostas

Todas as Respostas

  • DrAlves,

     

    Pode sim.

     

    O Else que esta dentro erro pertence a qual IF?

     

     

    Se você criou um bloco condicional utilizando o IF, lógicamento você poderá ter duas opções, sendo que, o Else que esta apresentando o Erro, teoricamente deverá pertencer a algum IF ou ElseIf.

     

    Code Snippet

    If @Qtde_Arq = 4

    set @ValidArq = 1

    Else

    set @ValidArq = 0

     

    Select @ValidArq as ValidArq

    Else --A qual IF ou ElseIf ele pertence?

    DECLARE @ValidArq Int

     

    DECLARE @Qtde_Arq Int

    Set @Qtde_Arq =(

     

     

    sexta-feira, 9 de janeiro de 2009 14:26
  • Olá,

     

    Como citado por pelo Júnior, Você pode sim ter um IF dentro de outro. Aconselho que sempre coloque os blocos do IF dentro de begin end por questões de organização.

     

    Ex:

     

    IF algumaCoisa = outraCoisa

    BEGIN

    --faz algo

    END

    ELSE

    BEGIN

    --faz outra coisa

    END

     

    Abraços

     

    sexta-feira, 9 de janeiro de 2009 15:05
  • Demétrio,

     

    Isso mesmo, desta forma, fica mais organizada e de fácil compreensão.

    sexta-feira, 9 de janeiro de 2009 15:20