DROP TABLE IF EXISTS 不适用于 Azure SQL 数据仓库

Edi*_*son 8 azure-sqldw azure-sql-database azure-sql-data-warehouse azure-synapse

我使用 SQL Server 管理工作室生成针对 Azure 数据仓库的脚本。我选择了版本 Azure 数据仓库,它在脚本下方生成以删除表(如果存在)并创建表。但是,脚本无法通过验证。请参阅下面的错误消息。

DROP TABLE IF EXISTS Table1
GO
Run Code Online (Sandbox Code Playgroud)

错误信息:

第 2 行解析错误,第 12 列:“IF”附近的语法不正确。

wBo*_*Bob 7

As indicated in the documentation, DROP TABLE IF EXISTS is not currently supported in Azure SQL Data Warehouse, as at today:

-- Syntax for SQL Server and Azure SQL Database  
DROP TABLE [ IF EXISTS ] [ database_name . [ schema_name ] . | schema_name . ]  
table_name [ ,...n ]  
[ ; ]

-- Syntax for Azure SQL Data Warehouse and Parallel Data Warehouse    
DROP TABLE [ database_name . [ schema_name ] . | schema_name . ] table_name   
[;] 
Run Code Online (Sandbox Code Playgroud)


Ron*_*unn 6

鲍勃的回答是正确的。我尝试添加以下内容作为评论,但如果没有格式化,它看起来很糟糕。

您可以使用以下语法作为替代:

if object_id ('dw.dim_location','U') is not null drop table dw.dim_location;
Run Code Online (Sandbox Code Playgroud)