用于合并到 SQL 的 Azure 突触合并语法错误

Posted

技术标签:

【中文标题】用于合并到 SQL 的 Azure 突触合并语法错误【英文标题】:Azure synapse Merger syntax error for Merge into TSQL 【发布时间】:2021-03-19 12:15:49 【问题描述】:

只是想知道下面的合并有什么问题。

谢谢

【问题讨论】:

【参考方案1】:

截至今天,Azure Synapse Analytics 专用 SQL 池和预览版都支持 MERGE。只需用分号结束您的语句,例如

MERGE INTO t1 USING t2
ON t1.col1 = t2.col1
WHEN MATCHED 
    THEN UPDATE SET t1.col2 = t2.col2
    
WHEN NOT MATCHED 
    THEN INSERT ( col1, col2 )
    VALUES ( col1, col2 );

还要确保您的目标表是HASH 分发的,以避免出现以下错误:

消息 100087,级别 16,状态 1,第 41 行合并语句与 WHEN NOT MATCHED [BY TARGET] 子句必须以散列分布式表为目标。

请参阅here 以获取完整的复制脚本。有关详细信息,请参阅此处的公告:

https://azure.microsoft.com/en-gb/updates/new-merge-command-for-azure-synapse-analytics/

【讨论】:

以上是关于用于合并到 SQL 的 Azure 突触合并语法错误的主要内容,如果未能解决你的问题,请参考以下文章

Azure SQL:如何将多个 Db 合并到一个管理 Db 中,同时双向同步任何未来的更改

009.增删查改语法(sql实例)

使用 Azure SQL 将不同的表列合并为一个

SQL实用技巧:如何将表中某一列的部分数据合并到一行中

Azure 突触分析 |用户“<token-identified principal>”登录失败

Synapse SQL:将临时表合并到主表和自动增量标识