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