Diferenças entre SET e SELECT ao atribuir Variável

Diferenças entre SET e SELECT ao atribuir Variável

Há duas formas de atribuir um valor a uma variável local previamente criado com o comando DECLARE @ declaração LocalVariable, ou seja, usando o SET e as instruções SELECT Para ilustrar:

[source language=”sql”]
DECLARE @SETVariable INT, @SELECTVariable INT
SET @SETVariable = 1
SELECT @SELECTVariable = 2

[/source]

Aqui estão as diferenças entre a SET e SELECT:

Instrução SET

• ANSI padrão para atribuição de variável

• Pode atribuir apenas uma variável de cada vez

• Ao atribuir a partir de uma consulta e a consulta não retorna nenhum resultado, SET irá atribuir um valor nulo para a variável.

• Ao atribuir a partir de uma consulta que retorna mais de um valor, SET irá falhar com um erro.

Instrução SELECT

• Padrão não-ANSI ao atribuir variável.

• Pode atribuir valores para mais de uma variável de cada vez.

• Ao atribuir a partir de uma consulta e a consulta não retorna nenhum resultado, SELECT não vai fazer a tarefa e, portanto, não altera o valor da variável.

• Ao atribuir a partir de uma consulta que retorna mais de um valor, SELECT irá atribuir o último valor retornado pela consulta e ocultar o fato de que a consulta retornou mais de uma linha.

4 comentários

Deixe um comentário para RuberleiCancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.