当前位置: 代码迷 >> SQL >> sql server varchar 值 的变换溢出了int列
  详细解决方案

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

热度:89   发布时间:2016-05-05 12:32:35.0
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语句 尽量往标准里写
  相关解决方案