SQL SERVER CHAR ( integer_expression )各版本返回值差异的案例
2016-01-03 10:45
357 查看
我们都知道CHAR(integer_expression)将ASCII代码转换为字符。当integer_expression介于 0 和 255 之间的整数。如果该整数表达式不在此范围内,将返回 NULL 值。这些都是官方资料介绍的。具体参考https://msdn.microsoft.com/zh-cn/library/ms187323(v=sql.120).aspx 但是在我们最近的一次SQL SERVER 2005 迁移升级到SQL SERVER 2014的过程中发现了一些问题,发现官方文档对这个函数的介绍描述有一些谬误。如下所示,在SQL SERVER 2000 和SQL SERVER 2005中CHAR(129)到CHAR(254)都返回了?。 但是从SQL SERVER 2008以后到SQL SERVER 2014,CHAR(129)到CHAR(254)都返回NULL值。并不是官方文档所说的参数不在1~255内才返回NULL值。这些必须注意,以免开发人员有些特殊的SQL用法在升级后出现错误。 SQL SERVER 2000
SQL SERVER 2005
SQL SERVER 2008R2
SQL SERVER 2014
SQL SERVER 2005
SQL SERVER 2008R2
SQL SERVER 2014
相关文章推荐
- 【转】oracle异常错误处理
- SQLite 一个轻量级别数据库
- EF6(CodeFirst)+MySql开发脱坑指南
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍--转载
- mysql进阶(二十)CPU超负荷异常情况
- mysql进阶(二十)CPU超负荷异常情况
- 使用mysqldump导入导出含BOLB数据的表
- Text数据类型,参数化查询但未提供该参数(将null插入数据库)
- Oracle Database 11G R2 标准版 企业版 下载地址(转)
- oracle 插入timestamp
- Redis 读后小感
- Redis学习笔记十:独立功能之监视器
- Redis学习笔记九:独立功能之慢查询日志
- Redis学习笔记八:独立功能之二进制位数组
- 在window7下安装mysql
- Oracle事务隔离级别
- mysql中的 IN和FIND_IN_SET的查询问题
- MySQL复制原理和简单配置
- NoSQL之Redis中的List消息队列
- mysql5.7 找回root密码