读书人

tinyint存储0的奇怪有关问题

发布时间: 2013-09-06 10:17:17 作者: rapoo

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

读书人网 >SQL Server

热点推荐