打印本文 打印本文 关闭窗口 关闭窗口
[SQL]不要让SQLServer帮你自动转换SQL命令中的数据类型
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4473  更新时间:2007/11/14 11:00:32  文章录入:mintao  责任编辑:mintao
当然,这回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]  下一页

打印本文 打印本文 关闭窗口 关闭窗口