我收到错误
将varchar值转换为数据类型int时转换失败
尝试将数据从一个表插入另一个表时。两者具有相同的表结构(要插入的表是Select
中使用的表的精确副本),并且列上的数据类型相同。
INSERT INTO PS_PSOPRDEFN_BA
SELECT *
FROM PSOPRDEFN
错误:
将varchar值'11000_600'转换为数据类型int时转换失败。
要插入此值的列在两个表中都是varchar(30)
,所以我不知道为什么SQL试图将其转换为int
。任何想法都值得赞赏。
答案 0 :(得分:2)
插入时,总是包括以下列:
INSERT INTO PS_PSOPRDEFN_BA ( . . . ) -- column list here
SELECT . . . -- column list here
FROM PSOPRDEFN;
您有一个值,该值是分配给整数列的字符串,并且该值无法转换。
进行insert
时,列在列列表中按顺序对齐,而不是按名称对齐。因此,仅具有相同的名称并不意味着代码会起作用。这些表必须具有按相同顺序定义的完全相同的列,并具有兼容的类型,才能使代码起作用。