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

从Wonderware Historian取数插入SQL表列匹配错误问题求助

解决Wonderware Historian数据插入SQL表报错问题

你遇到的报错Column name or number of supplied values ​​does not match table definition的核心原因是:你SELECT查询返回的字段数量、顺序或数据类型,和目标表x_TagsDescr的结构不匹配,按以下步骤排查解决即可:

  • 首先查询目标表结构确认字段信息,执行如下命令查看x_TagsDescr的所有字段、顺序、数据类型:

    sp_help 'x_TagsDescr'
    

    确认你需要插入的5个字段(TagName、StartDateTime、EndDateTime、Value、vValue)和表的字段数量、对应位置、类型是否兼容。

  • 必须显式指定插入的字段列表,不要省略插入字段部分。省略插入字段列表时,数据库会默认按表创建时的字段顺序匹配你SELECT返回的列,如果表有额外字段(比如自增主键、默认值字段、计算字段)就会直接报错,修改后的插入语句参考:

    INSERT INTO x_TagsDescr (TagName, StartDateTime, EndDateTime, Value, vValue)
    SELECT 
        StateSummaryHistory.TagName, 
        StartDateTime, 
        EndDateTime, 
        Value, 
        vValue
    FROM StateSummaryHistory
    WHERE StateSummaryHistory.TagName IN ('VTIS01_FT04', 'VTIS01_TT344')
    -- 保留Historian查询的过滤条件,避免插入无效冗余数据
    AND wwVersion = 'Latest'
    AND wwRetrievalMode = 'Cyclic'
    AND wwCycleCount = 1
    AND StartDateTime >= DateAdd(mi,-5,GetDate())
    AND EndDateTime <= GetDate()
    
  • 如果确认字段数量不匹配,按需调整即可:如果x_TagsDescr有不需要插入的额外字段(比如自增ID、创建时间默认值字段),只要你已经按上一步显式指定了要插入的字段列表,数据库会自动用默认值填充额外字段;如果是对应字段的数据类型不兼容,使用CAST或CONVERT函数做类型转换即可,比如数值转字符串可以写为CAST(Value AS VARCHAR(50))。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:15:03