Atribuir variáveis com o Synapse SQL

Neste artigo, encontrará sugestões para atribuir variáveis T-SQL com o Synapse SQL.

Definir variáveis com DECLARE

As variáveis no Synapse SQL são definidas com a DECLARE instrução ou a SET instrução . Inicializar variáveis com DECLARE é uma das formas mais flexíveis de definir um valor variável no Synapse SQL.

DECLARE @v  int = 0
;

Também pode utilizar DECLARE para definir mais do que uma variável de cada vez. Não pode utilizar SELECT ou UPDATE para fazer o seguinte:

DECLARE @v  INT = (SELECT TOP 1 c_customer_sk FROM Customer where c_last_name = 'Smith')
,       @v1 INT = (SELECT TOP 1 c_customer_sk FROM Customer where c_last_name = 'Jones')
;

Não pode inicializar e utilizar uma variável na mesma instrução DECLARE. Para ilustrar, o exemplo seguinte não é permitido, uma vez que @p1 é inicializado e utilizado na mesma instrução DECLARE. O exemplo seguinte apresenta um erro.

DECLARE @p1 int = 0
,       @p2 int = (SELECT COUNT (*) FROM sys.types where is_user_defined = @p1 )
;

Definir valores com SET

SET é um método comum para definir uma única variável.

As seguintes instruções são todas formas válidas de definir uma variável com SET:

SET     @v = (Select max(database_id) from sys.databases);
SET     @v = 1;
SET     @v = @v+1;
SET     @v +=1;

Só pode definir uma variável de cada vez com SET. No entanto, os operadores compostos são permitidos.

Limitações

Não pode utilizar UPDATE para atribuição de variáveis.

Passos seguintes

Para obter mais sugestões de desenvolvimento, veja o artigo Descrição geral do desenvolvimento do SQL do Synapse .