问题描述
Microsoft Azure官方团队tutorial在Azure 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中的智能感知并没有显示这些语法错误的原因。也许,对上述查询有更好了解的人可能会有所帮助。