我创建了一个包含 A 列、B 列和 C 列的主表。每当我尝试使用以下命令从另一个表中插入行时:
INSERT INTO MASTER
select * from Table B
我收到错误消息“超出字符宽度”。我不确定为什么。
可能是 的一个或多个列大小Table B
大于 的相应列大小MASTER
。
例如 - Table B
'scolumn1
可能是VARCHAR(255)
并且MASTER
'scolumn A
可能小于 255。
检查表 MASTER 的结构是否与表 B完全相同。
可能是 MASTER.colx 是字符串 (20) 而 B.colx 是字符串 (25) 的问题,或者可能是字符集问题 (unicode/latin-1/utf-8/iso-8859-x)
考虑将表 MASTER 创建为:
select *
into master
from tableB
where 1=0
这将保证两个表之间的列数据类型相同。然后您可以再次尝试插入。