Поделиться через


Назначение переменных для выделенных пулов SQL в Azure Synapse Analytics

В этой статье приведены основные советы по назначению переменных T-SQL в выделенном пуле SQL.

Установите переменные с помощью DECLARE

Переменные в выделенном пуле SQL задаются с помощью оператора DECLARE или оператора SET. Инициализация переменных с помощью DECLARE является одним из самых гибких способов задания значения переменной в пуле SQL.

DECLARE @v  int = 0
;

Вы также можете использовать DECLARE для задания нескольких переменных за раз. Для выполнения следующих действий нельзя использовать SELECT или UPDATE:

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')
;

Вы не можете инициализировать и использовать переменную в той же инструкции DECLARE. Чтобы пояснить мысль, следующий пример не допускается, так как @p1 единственно инициализирован и используется в одном операторе DECLARE. Таким образом, следующий пример приводит к ошибке:

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

Установка значений с помощью SET

SET — это распространенный метод настройки одной переменной.

Следующие инструкции являются допустимыми способами задания переменной с помощью SET:

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

Вы можете задать только одну переменную в одно время с помощью SET. Однако составные операторы допустимы.

Ограничения

Невозможно использовать UPDATE для назначения переменных.

Дальнейшие действия

Дополнительные советы по разработке приведены в обзоре разработки.