由WITH子句引起的Azure SQL Server查询错误

问题描述

Microsoft Azure官方团队tutorialAzure Synapse Analytics上发布的以下sql给出了与common table expression (CTE)WITH子句相关的以下错误

在Azure门户中查询

CREATE TABLE [dbo].[Trip]
(
    [DateID] int NOT NULL,[MedallionID] int NOT NULL,[HackneyLicenseID] int NOT NULL,[PickupTimeID] int NOT NULL,[DropoffTimeID] int NOT NULL,[PickupGeographyID] int NULL,[DropoffGeographyID] int NULL,[PickupLatitude] float NULL,[PickupLongitude] float NULL,[PickupLatLong] varchar(50) COLLATE sql_latin1_General_CP1_CI_AS NULL,[DropoffLatitude] float NULL,[DropoffLongitude] float NULL,[DropoffLatLong] varchar(50) COLLATE sql_latin1_General_CP1_CI_AS NULL,[PassengerCount] int NULL,[TripDurationSeconds] int NULL,[TripdistanceMiles] float NULL,[PaymentType] varchar(50) COLLATE sql_latin1_General_CP1_CI_AS NULL,[fareAmount] money NULL,[SurchargeAmount] money NULL,[TaxAmount] money NULL,[TipAmount] money NULL,[TollsAmount] money NULL,[TotalAmount] money NULL
)
WITH
(
    disTRIBUTION = ROUND_ROBIN,CLUSTERED COLUMNSTORE INDEX
);

copY INTO [dbo].[Trip]
FROM 'https://nytaxiblob.blob.core.windows.net/2013/Trip2013/QID6392_20171107_05910_0.txt.gz'
WITH
(
    FILE_TYPE = 'CSV',FIELDTERMINATOR = '|',FIELDQUOTE = '',ROWTERMINATOR='0X0A',COMPRESSION = 'GZIP'
)
OPTION (LABEL = 'copY : Load [dbo].[Trip] - Taxi dataset');

在我将;子句替换为; WITH 之前的错误

无法执行查询错误:“ disTRIBUTION”附近的语法不正确。关键字“ with”附近的语法不正确。如果此语句是公用表表达式,xmlnamespaces子句或更改跟踪上下文子句,则前一条语句必须以分号终止。

但是,由于类似的错误而从用户@KM跟随this response之后,当我将WITH替换为;WITH时,出现了以下错误。 Azure Portal中的错误显示错误的确切位置:

我将WITH子句替换为; WITH 后出现错误

无法执行查询错误:“(”附近的语法不正确。

问题:Microsoft教程的查询中可能缺少什么,我们如何解决错误

备注:Azure门户中上述sql的以下屏幕截图显示了一些红线,似乎表明上述sql有语法错误。但是与SSMS不同的是,Azure Portal中的智能感知并没有显示这些语法错误的原因。也许,对上述查询有更好了解的人可能会有所帮助。

enter image description here

解决方法

发现了问题,当我不更改池名称时遇到了同样的错误。此命令在“ SQL on-demand”中不起作用,因此我们应将池更改为在本教程的第1步中创建的新池,然后该池起作用。

我用名称创建-测试,在教程中,它是'SQLDB1'。选择它并尝试运行。

我将提高PR以在MS文档中添加此行。

enter image description here