1
resposta

SET OU SELECT ?

No comando descrito em aula:

DECLARE @MAXIMO FLOAT, @ATUAL FLOAT, @BAIRRO VARCHAR(20)
SET @BAIRRO = 'Jardins'
SET @MAXIMO = 500000
SELECT @ATUAL = SUM([CREDITO]) FROM [CLIENTES] WHERE BAIRRO = @BAIRRO

Por que o valor declarado à variável @ATUAL precisou ser com SELECT e não com SET como as demais? Poderia usar SET @ATUAL = SUM([CREDITO]) FROM [CLIENTES] WHERE BAIRRO = @BAIRRO?

1 resposta

Olá Carmen, tudo bem?

Tanto o SELECT quanto o SET são utilizadas para atribuir valores a variáveis, porém existe algumas diferença entre as duas funções.

SELECT

Atribui um valor ou vários valores a uma variável

Pode inicializar várias variáveis locais

Se a instrução SELECT não retornar nenhuma linha, a variável não sofrerá alteração no seu valor atual

Atribui valores a uma variável, a partir de uma consulta em uma tabela.

No momento de definir qual das duas utilizar, você deve levar em consideração o que precisará ser feito e qual vai atender melhor a sua necessidade.

SET

Atribui um valor a uma variável

Para cada variável utiliza-se uma nova instrução SET

Se a instrução SET não retornar nenhuma linha, o valor da variável ficará como NULL

O instrutor o utilizou SELECT ao invés do SET, pois o valor da variável estava sendo atribuída através de uma consulta em uma tabela.

Segue a documentação referente a SELECT e a SET para tentar esclarecer mais suas duvidas.

SELECT

SET

Espero que tenha te ajudado.