Присвоение значений переменных для выделенных пулов 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, чтобы присвоить значение переменной.
Дальнейшие действия
Дополнительные советы по разработке приведены в обзоре разработки.