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