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

使用OPENROWSET创建Synapse视图时遇重复列序号报错求助

解决Synapse中OPENROWSET读取Delta表时的重复列序号错误

你遇到的这个错误,核心原因是Synapse自动推断Delta表schema时,识别到了重复的列定义——哪怕你没写WITH子句,OPENROWSET读取Delta表时会自动解析表的元数据生成schema,如果Delta表本身存在重复列名(包括大小写不同但逻辑上被视为重复的,比如abc和ABC,Synapse SQL默认大小写不敏感),就会触发这个“重复列序号”的报错。

给你两个可行的解决办法:

方法1:检查并修复Delta表的重复列

先确认Delta表的schema是否有重复列(包括大小写差异的),可以通过Databricks或者ADLS的Delta Lake工具查看表结构。如果发现重复列,先在Delta表端删除冗余列,再重新执行视图创建语句。

方法2:显式指定OPENROWSET的schema

绕过自动推断,手动在WITH子句里定义列结构,精准控制列的序号和类型,避免重复问题。修改后的SQL示例如下:

CREATE OR ALTER VIEW testView
SELECT 
    CAST(abc AS NVARCHAR(255)) AS abc,
    CAST(def AS NVARCHAR(255)) AS def,
    CAST(Date1 AS DATETIME) AS DateJoined
FROM
    OPENROWSET(
        BULK 'tablename',
        DATA_SOURCE = 'datasource',
        FORMAT = 'DELTA'
    ) WITH (
        abc STRING,
        def STRING,
        Date1 TIMESTAMP
    ) AS m

这里的WITH子句要严格对应Delta表的实际列名和类型,确保没有重复项,之后在SELECT里再做类型转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:22:40