我想把数据从一个表插入到另一个表。两个表都有大约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。
- 运行宏或视觉检查/调整差异。你提到的空值,你必须马上知道。