如何获取导致错误"Column name or number of supplied values does not match table definition"的列的名称



我想把数据从一个表插入到另一个表。两个表都有大约100列。它们没有相同的结构,但"几乎":源表大约少了20列-其中一些是NOT NULL。当然,对于这些列,我必须定义一个默认值。

我的第一次尝试导致错误消息(惊喜惊喜):

列名或提供的值数量与表定义不匹配

但是在我复杂的情况下,这个消息并没有真正的帮助。有没有一种方法可以得到更精确的错误信息?

建议让您的查询更容易阅读,而不是依赖于RDBMS的错误消息。一个想法:

  • 将每一列放在单独的行上。
 INSERT INTO TargetTable (
    Col1,
    Col2,
    ....
 )
 SELECT 
    Col1,
    Col2,
    ....
 FROM SourceTable
  • 创建一个新的Excel表
  • 在SQL Server Management Studio, Alt-F1你的目标表;复制粘贴Column_name(可能还有Nullable值)到Excel工作表的column .
  • 复制/粘贴TargetTable的列到ColumnB。
  • 运行宏或视觉检查/调整差异。你提到的空值,你必须马上知道。

相关内容

最新更新