Atribuir variáveis com o SQL do Synapse

Neste artigo, você encontrará dicas para atribuir variáveis T-SQL com o SQL do Synapse.

Definir variáveis com DECLARE

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

DECLARE @v  int = 0
;

Você também pode usar DECLARE para definir mais de uma variável por vez. Não é possível usar SELECT nem 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 é possível inicializar nem usar uma variável na mesma instrução DECLARE. Para ilustrar, o exemplo a seguir não é permitido, já que @p1 foi inicializado e usado na mesma instrução DECLARE. O exemplo a seguir 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 instruções a seguir sempre são maneiras 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;

Você só pode definir uma variável por vez com SET. No entanto, os operadores compostos são permitidos.

Limitações

Você não pode usar UPDATE para atribuição de variáveis.

Próximas etapas

Para obter mais dicas de desenvolvimento, confira o artigo Visão geral de desenvolvimento do SQL do Synapse.