1
resposta

Uso do begin e end

Olá, boa tarde! Podem me ajudar, porque nesse comando abaixo, foi ilustrado com o uso do begin e também funciona sem

DECLARE @LIMITE_MAXIMO FLOAT, @LIMITE_ATUAL FLOAT
DECLARE @BAIRRO VARCHAR(20)

SET @BAIRRO = 'Água Santa'
SET @LIMITE_MAXIMO = 50000
SELECT @LIMITE_ATUAL = SUM([LIMITE DE CREDITO]) FROM [TABELA DE CLIENTES] WHERE BAIRRO = @BAIRRO
IF @LIMITE_MAXIMO <= (SELECT SUM([LIMITE DE CREDITO]) FROM [TABELA DE CLIENTES] WHERE BAIRRO = @BAIRRO)
BEGIN
   PRINT 'Valor estourou. Não é possível abrir novos créditos'
END
ELSE
BEGIN
   PRINT 'Valor não estourou. É possível abrir novos créditos'
END

E já nesse comando abaixo não foi usado? O comando Begin é obrigatório em algum caso? Quando deve usar-lo? Se rodar o comando acima sem Begin ele funciona normal ou pode ocorrer algum problema?

DECLARE @DATANOTA DATE
DECLARE @NUMNOTAS INT
SET @DATANOTA = '20170102'
SELECT @NUMNOTAS = COUNT(*) FROM [NOTAS FISCAIS] 
    WHERE DATA = @DATANOTA
IF @NUMNOTAS > 70
    PRINT 'Muita nota'
ELSE
    PRINT 'Pouca nota'
PRINT @NUMNOTAS
1 resposta

Olá, Vander, tudo bem?

Desculpe pela demora em obter retorno.

O BEGIN e o END não são obrigatórios em todos os casos, mas são úteis em situações específicas para controlar o fluxo de execução do código.

No exemplo que você apresentou, o uso do BEGIN e END é opcional, pois cada bloco contém apenas uma única instrução: PRINT 'Valor estourou. Não é possível abrir novos créditos' e PRINT 'Valor não estourou . É possível abrir novos créditos', respectivamente. Nesse caso, o código funcionará corretamente com ou sem o uso dos delimitadores.

No entanto, o BEGIN e END se tornam necessários quando você precisa executar várias instruções dentro de um bloco condicional ou de repetição.

Espero ter ajudado.

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

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!