简体   繁体   English

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

[英]Error in declare variable with SQL in Azure Synapse

I recently had a first contact with the Azure Synapse Analytics environment, and when implementing some SQL queries, I came across a problem when trying to declare a variable to run a query with WHILE.我最近第一次接触 Azure Synapse Analytics 环境,在实现一些 SQL 查询时,我在尝试声明一个变量以使用 WHILE 运行查询时遇到了一个问题。

I am sending below the error messages I am getting.我在收到的错误消息下方发送。 I've read the T-SQL documentation and I'm not understanding what I'm doing wrong.我已经阅读了 T-SQL 文档,但我不明白我做错了什么。 If anyone has gone through the same situation and could shed some light on it, I would be very grateful!如果有人经历过同样的情况并能对此有所了解,我将不胜感激!

%%sql

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

and the message error:和消息错误:

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)错误:不匹配的输入 'DECLARE' 期望 {'(', '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'}(第 2 行,位置 0)

== SQL == == SQL ==

DECLARE '@Counter' INT声明'@Counter' INT
^^^ ^^^

If you're in a notebook, using the sql magic, you are writing SparkSQL against a Spark pool not T-SQL against a dedicated SQL pool.如果您在笔记本中,使用 sql 魔法,您正在针对 Spark 池编写 SparkSQL,而不是针对专用 SQL 池的 T-SQL。

Just write that SQL in Synapse Studio or SSMS or Azure Data Studio when connected to your dedicated or serverless SQL pool.当连接到您的专用或无服务器 SQL 池时,只需在 Synapse Studio、SSMS 或 Azure Data Studio 中编写该 SQL。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM