首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

tinyint存储0的奇怪有关问题

2013-09-06 
tinyint存储0的奇怪问题在sqlserver2005设计的时候偶然遇到这样一个问题:declare @i tinyintset @i0if(@i

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

热点排行