You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Synapse数据仓库执行多批SQL遇Msg103010错误,求解决方案

解决Azure Synapse数据仓库创建Schema的语法错误问题

问题原因

Azure Synapse SQL池的T-SQL语法与标准SQL Server存在差异,当IF NOT EXISTS条件后直接跟CREATE SCHEMA这类DDL语句时,必须显式用BEGIN/END包裹语句块,否则会触发解析错误。

解决方案1:用BEGIN/END包裹DDL语句

修改后的脚本符合Synapse语法要求,无需创建存储过程:

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'SCHEMA1')
BEGIN
    CREATE SCHEMA [SCHEMA1];
END
GO
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'SCHEMA2')
BEGIN
    CREATE SCHEMA [SCHEMA2];
END
GO

解决方案2:使用动态SQL执行

通过动态SQL运行时解析DDL语句,可绕过解析器限制:

IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'SCHEMA1')
BEGIN
    EXEC('CREATE SCHEMA [SCHEMA1];')
END
GO
IF NOT EXISTS (SELECT * FROM sys.schemas WHERE name = 'SCHEMA2')
BEGIN
    EXEC('CREATE SCHEMA [SCHEMA2];')
END
GO

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 13:45:58