Variáveis ​​SQL: variável de declaração, definição e seleção do SQL Server

O que é uma variável no SQL Server?

No MS SQL, variáveis ​​são o objeto que atua como um espaço reservado para um local de memória. A variável contém um valor de dados único.

Tipos de variáveis ​​em SQL: local, global

MS SQL possui dois tipos de variáveis:

  1. Variável local
  2. Variável global.

No entanto, o usuário só pode criar uma variável local.

A figura abaixo explica dois tipos de variáveis ​​disponíveis em Servidor MS SQL.

Variáveis ​​SQL
Tipo de variáveis ​​no SQL Server

Variável local

  • Um usuário declara a variável local.
  • Por padrão, uma variável local começa com @.
  • Todo escopo de variável local tem a restrição ao lote ou procedimento atual dentro de qualquer sessão.

Variável global

  • O sistema mantém a variável global. Um usuário não pode declará-los.
  • A variável global começa com @@
  • Ele armazena informações relacionadas à sessão.

Como DECLARE uma variável em SQL

  • Antes de usar qualquer variável em lote ou procedimento, você precisa declare a variável.
  • O comando DECLARE é usado para DECLARE a variável que atua como um espaço reservado para o local da memória.
  • Somente depois de feita a declaração, uma variável poderá ser utilizada na parte subsequente do lote ou procedimento.

Sintaxe TSQL:

DECLARE  { @LOCAL_VARIABLE[AS] data_type  [ = value ] }

Regras:

  • A inicialização é opcional durante a declaração.
  • Por padrão, DECLARE inicializa a variável como NULL.
  • Usar a palavra-chave 'AS' é opcional.
  • Para declarar mais de uma variável local, use uma vírgula após a definição da primeira variável local e, em seguida, defina o nome da próxima variável local e tipo de dados.

Exemplos de declaração de uma variável

Consulta: Com 'AS'

DECLARE @COURSE_ID AS INT;

Consulta: Sem 'AS'

DECLARE @COURSE_NAME VARCHAR (10);

Consulta: DECLARE duas variáveis

DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);

Atribuindo um valor à variável SQL

Você pode atribuir um valor a uma variável da seguinte forma três maneiras:

  1. Durante a declaração de variável usando a palavra-chave DECLARE.
  2. Usando SET
  3. Usando SELECIONAR

Vamos dar uma olhada em todas as três maneiras em detalhes:

Durante a declaração de variável usando a palavra-chave DECLARE

Sintaxe T-SQL:

DECLARE { @Local_Variable [AS] Datatype [ = value ] }

Aqui, após o tipo de dados podemos usar '=' seguido do valor a ser atribuído

Inquérito:

DECLARE @COURSE_ID AS INT = 5
PRINT @COURSE_ID

Atribuindo um valor à variável SQL

Usando SQL SET VARIÁVEL

Às vezes queremos manter a declaração e a inicialização separadas. SET pode ser usado para atribuir valores à variável, após declarar uma variável. Abaixo estão as diferentes maneiras de atribuir valores usando SET:

Exemplo: Atribuindo um valor a uma variável usando SET

Sintaxe:

DECLARE @Local_Variable <Data_Type>
SET @Local_Variable =  <Value>

Inquérito:

DECLARE @COURSE_ID AS INT
SET @COURSE_ID = 5
PRINT @COURSE_ID

SQL DEFINIR VARIÁVEL

Exemplo: Atribua um valor a múltiplas variáveis usando SET.

Sintaxe:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>,
SET @Local_Variable_1 = <Value_1>
SET @Local_Variable_2 = <Value_2>

Regra: Uma palavra-chave SET pode ser usada para atribuir um valor apenas a uma variável.

Inquérito:

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SET @COURSE_ID = 5
SET @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

SQL DEFINIR VARIÁVEL

Exemplo: Atribuir um valor a uma variável com um Subconsulta escalar usando SET

Sintaxe:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)

Regras:

  • Coloque a consulta entre parênteses.
  • A consulta deve ser uma consulta escalar. Uma consulta escalar é uma consulta com resultados em apenas uma linha e uma coluna. Caso contrário, a consulta gerará um erro.
  • Se a consulta retornar zero linhas, então a variável será definida como VAZIA, ou seja, NULL.

Suposição: Suponha que temos a tabela como 'Guru99' com duas colunas conforme mostrado abaixo:

SQL DEFINIR VARIÁVEL

Usaremos a tabela 'Guru99' nos próximos tutoriais

1 exemplo: Quando a subconsulta retorna uma linha como resultado.

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3)
PRINT @COURSE_NAME

SQL DEFINIR VARIÁVEL

Exemplo 2: Quando a subconsulta retorna zero linha como resultado

DECLARE @COURSE_NAME VARCHAR (10)
SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

Neste caso particular, o valor da variável é VAZIO, ou seja, NULL.

SQL DEFINIR VARIÁVEL

Usando SQL SELECT VARIÁVEL

Assim como SET, também podemos usar SELECT para atribuir valores às variáveis, após declarar uma variável usando DECLARE. Abaixo estão diferentes maneiras de atribuir um valor usando SELECT:

Exemplo: Atribuindo um valor a uma variável usando SELECT

Sintaxe:

DECLARE @LOCAL_VARIABLE <Data_Type>
SELECT @LOCAL_VARIABLE = <Value>

Inquérito:

DECLARE @COURSE_ID INT
SELECT @COURSE_ID = 5
PRINT @COURSE_ID

SQL SELECIONAR VARIÁVEL

Exemplo: Atribuindo um valor a múltiplas variáveis ​​usando SELECT

Sintaxe:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>,  @Local_Variable _2 = <Value_2>

Regras: Ao contrário de SET, SELECT pode ser usado para atribuir um valor para múltiplas variáveis separados pelo vírgula.

DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5)
SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX'
PRINT @COURSE_ID
PRINT @COURSE_NAME

SQL SELECIONAR VARIÁVEL

Exemplo: Atribuindo o valor a uma variável com uma subconsulta usando SELECT

Sintaxe:

DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)

Regras:

  • Coloque a consulta entre parênteses.
  • A consulta deve ser uma consulta escalar. A consulta escalar é a consulta com o resultado de uma linha e uma coluna. Caso contrário, a consulta gerará um erro.
  • Se a consulta retornar zero linhas, então a variável é VAZIA, ou seja, NULL.
  • Reconsidere nossa tabela 'Guru99'

1 exemplo: Quando a subconsulta retorna uma linha como resultado.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1)
PRINT @COURSE_NAME

SQL SELECIONAR VARIÁVEL

2 exemplo: Quando a subconsulta retorna linha zero como resultado

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5)
PRINT @COURSE_NAME

Neste caso particular, a variável é EMPTY, ou seja, NULL.

SQL SELECIONAR VARIÁVEL

3 exemplo: Atribua um valor a uma variável com uma instrução SELECT regular.

Sintaxe:

DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>

Regras:

  • Ao contrário de SET, se a consulta resultar em múltiplas linhas, o valor da variável será definido como o valor da última linha.
  • Se a consulta retornar zero linhas, então a variável será definida como VAZIA, ou seja, NULL.

Consulta 1: a consulta retorna uma linha.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3
PRINT @COURSE_NAME

SQL SELECIONAR VARIÁVEL

Consulta 2: a consulta retorna várias linhas.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99
PRINT @COURSE_NAME

Neste caso especial, o valor da variável é definido para o valor da última linha.

SQL SELECIONAR VARIÁVEL

Consulta 3: a consulta retorna zero linhas.

DECLARE @COURSE_NAME VARCHAR (10)
SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5
PRINT @COURSE_NAME

Neste caso particular, a variável é VAZIA, ou seja, NULL.

SQL SELECIONAR VARIÁVEL

Outros exemplos de variáveis ​​SQL

Usando variável na consulta

Inquérito:

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

Outra variável SQL

Fatos interessantes sobre variáveis ​​​​do SQL Server!

  • Uma variável local pode ser exibida usando PRINT e também SELECT COMMAND
  • O tipo de dados da tabela não permite o uso de 'AS' durante a declaração.
  • SET está em conformidade com os padrões ANSI, enquanto SELECT não.
  • Criar uma variável local com o nome @ também é permitido. Podemos declará-lo como, por exemplo:
    'DECLARE @@ as VARCHAR (10)'
    

Resumo

  • Variáveis ​​são o objeto que atua como um espaço reservado.
  • Existem dois tipos de variáveis: locais e globais
  • Podemos atribuir a variável das três maneiras a seguir: Usando 1) DECLARE 2) Usando SET 3) USANDO SELECT