1
resposta

[Sugestão] Execução do código no IF

Justificativa da resposta B: "Neste caso, como há mais de uma instrução a ser executada, é necessário utilizar o bloco BEGIN...END para delimitar o escopo das instruções que serão executadas caso a condição seja verdadeira. Sem o bloco BEGIN...END, o comando IF executará apenas a primeira instrução após a condição, desconsiderando a segunda instrução."

Acho necessário esclarecer que, nesse caso, o segundo comando será executado sempre, mas por não ser um comando do bloco IF. O SQL vai entender que o bloco IF contém apenas a primeira instrução ("PRINT @Y;") e que a segunda instrução ("PRINT @X;") está no escopo de fora e será executada independente do resultado do IF.

1 resposta

Olá, tudo bem?

De fato, o comando IF só vai considerar a primeira instrução ("PRINT @Y;") como parte de seu bloco. A segunda instrução ("PRINT @X;"), por não estar dentro de um bloco BEGIN...END, será tratada como uma instrução independente e será executada independentemente do resultado da condição IF.

Agradeço pelo seu feedback e por compartilhar a informação aqui no fórum, ela poderá ajudar outros alunos.

Caso surja alguma dúvida, fico à disposição.

Abraços!