為 Azure Synapse Analytics 中的專用 SQL 集區指派變數

在本文中,您會找到在專用 SQL 集區中指派 T-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 進行變數指派。

後續步驟

如需更多開發秘訣,請參閱開發概觀