首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server varchar 值 的变换溢出了int列

2013-01-20 
sql server varchar 值的转换溢出了int列无聊研究了一下这个问题首先定义code是varchar型字段。正规写法是

sql server varchar 值 的转换溢出了int列
无聊研究了一下这个问题
首先定义code是varchar型字段。
正规写法是给varchar后的数值加上引号:where code = '001002';
在oracle中  可以直接把 001002 当成字符来用   code = 001002 不会报错;
而在sql server中  有时候  这样写 code = 001002  也不报错;
而有时候就会报 varchar 值 ... ... 转换溢出了int列

为什么有的就不报错呢?经过测试 找到原因:
在sql server 中  当查询的目标表中  所有的code字段的length不大于 where条件后的 001002 的length时,查询是不报错的;
如:
001001;
001010;
00200;
当有code 的length比001002的length大时,查询就会报错;
如:
0010020;

希望大家以后写sql语句 尽量往标准里写

热点排行