Usuário com melhor resposta
Dúvida no script com IF

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 = 0Else --O ERRO ESTÁ AQUI
DECLARE @ValidArq Int
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 SnippetIf @Qtde_Arq = 4
set @ValidArq = 1
Else
set @ValidArq = 0Else --A qual IF ou ElseIf ele pertence?
DECLARE @ValidArq Int -
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
-