在 Azure Synapse 中使用 SQL 声明变量时出错

Error in declare variable with SQL in Azure Synapse

我最近第一次接触 Azure Synapse Analytics 环境,在实现一些 SQL 查询时,我在尝试使用 WHILE 向 运行 查询声明变量时遇到了问题.

我在下面发送我收到的错误消息。我已经阅读了 T-SQL 文档,但我不明白我做错了什么。如果有人经历过同样的情况并能对此有所了解,我将不胜感激!

%%sql

DECLARE @Counter INT;
SET @Counter = 0;
WHILE ( @Counter <= 3)
BEGIN
    PRINT 'The counter value is = ' + CONVERT(VARCHAR,@Counter)
    SET @Counter  = @Counter  + 1
END

和消息错误:

Error: mismatched input 'DECLARE' expecting {'(', 'ADD', 'ALTER', 'ANALYZE', 'CACHE', 'CLEAR', 'COMMENT', 'COMMIT', 'CREATE', 'DELETE', 'DESC', 'DESCRIBE', 'DFS', 'DROP', 'EXPLAIN', 'EXPORT', 'FROM', 'GRANT', 'IMPORT', 'INSERT', 'LIST', 'LOAD', 'LOCK', 'MAP', 'MERGE', 'MSCK', 'REDUCE', 'REFRESH', 'REPLACE', 'RESET', 'REVOKE', 'ROLLBACK', 'SELECT', 'SET', 'SHOW', 'START', 'TABLE', 'TRUNCATE', 'UNCACHE', 'UNLOCK', 'UPDATE', 'USE', 'VALUES', 'WITH'}(line 2, pos 0)

== SQL ==

DECLARE '@Counter' INT
^^^

如果你在笔记本中,使用 sql 魔法,你正在针对 Spark 池编写 SparkSQL,而不是针对专用 SQL 池编写 SparkSQL .

连接到专用或无服务器 SQL 池时,只需在 Synapse Studio 或 SSMS 或 Azure Data Studio 中写入 SQL。