当前位置: 代码迷 >> Sql Server >> tinyint存储0的奇怪有关问题
  详细解决方案

tinyint存储0的奇怪有关问题

热度:56   发布时间:2016-04-24 20:43:01.0
tinyint存储0的奇怪问题
在sqlserver2005设计的时候偶然遇到这样一个问题:

declare @i tinyint
set @i=0
if(@i='')
print 'yes'

为什么当i等于0的时候会执行print语句,实在搞不懂。i为其他值的时候不会执行print语句。难道i=0和i为空白是等价的吗?

------解决方案--------------------
数据类型隐式转换,''自动转换为0
如:SELECT CAST('' AS INT),輸出結果就是0

------解决方案--------------------
空字符,系统会默认为0.
不光tinyint是这样,所有数据类型都是这样(decimal除外),包括int,bigint,flot