在本文中,你将找到有关使用 Synapse SQL 分配 T-SQL 变量的提示。
Synapse SQL 中的变量是通过使用 DECLARE
语句或 SET
语句来设置的。 使用 DECLARE 初始化变量是在 Synapse 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 语句中初始化和使用变量。 为了说明,不允许使用下面的示例,因为在同一 DECLARE 语句中,@p1 被同时初始化和使用。 下面的示例会出错。
DECLARE @p1 int = 0
, @p2 int = (SELECT COUNT (*) FROM sys.types where is_user_defined = @p1 )
;
SET 是设置单个变量的常用方法。
以下语句都是使用 SET 设置变量的有效方法:
SET @v = (Select max(database_id) from sys.databases);
SET @v = 1;
SET @v = @v+1;
SET @v +=1;
一次只能使用 SET 设置一个变量。 但是可使用复合运算符。
不能将 UPDATE 用于变量赋值。
有关更多开发提示,请参阅 Synapse SQL 开发概述 文章。