| 当然,这回SQLServer转不过来了,因为“12051113280101053509”换为数字实在太大了,超出了范围,所以你看SQLServer于是乎报告“将数据类型 varchar 转换为 numeric 时出错”,他指的就是把历史数据“12051113280101053509”这个varchar(30)转成numeric不行,而不是把你SQL脚本传递的参数62010388000012转换失败。
让我们看看另一种形式的错误,就更清楚了:
我们执行
SELECT * FROM XXXX_ORIGINAL_20031205 where msgid=120
命令就会得到错误:
varchar 值 ''''12050003010101026986'''' 的转换溢出了 int 列。超出了最大整数值。
这个错误,是不是很清楚地表明了SQLServer在帮你执行SQL命令时背后所作的事情?
他试图帮你主动把记录中的这个字段转换成你在SQL命令中指明的那个数据类型。
我的建议:
很多时候,我们懒得去看某个字段到底是什么类型,是char 上一页 [1] [2] [3] [4] 下一页 |