SQL Server NULL分析和理解
1、null的理解
null在Sql Server数据库中是“不存在”,是“空”,但并不是空字符的意思;null在了解不深,使用不当时,很可能导致一些错误。
2、null的特殊处理
为避免一些错误,可以从两方面处理
1.必要时将某些字段设置不允许为空;这样就能避免null引起的问题;
2.某些字段允许为null时,在程序中控制,默认写入空字符串;
3.如果没必要设置为空,但又需要比较时,必须用is null;而不能用 = null。
3、结论:
(1)null不等于null ,但null是null!判断的时候用 is null 或 is not null
(2)null 判断的时候用"is" ,赋值的时候用"="
(3)字段能不设置为null,就不要设置为空
4、实例说明:
先写一个简单的例子
declare @table table( id int ,col varchar( 20)) insert into @table select 1, 'bag' union all select 2, null union all select 3, 'ball' select * from @table where col<>null select * from @table where col =null
/*
两句话的结果一样:
id col
----------- --------------------
都是没有数据 (因为null <>null )
*/
然后我们用下面的语句来测试一下
if(null=null) select 'null=null' as result_a else select 'null<>null' as result_a if(null is null) select 'null is null' as result_b else select 'null is not null' as result_b
/*
result_a
----------
null<>null
result_b
------------
null is null
*/
结果说明了null不等于null ,但null是null!
然后我们在赋值的时候 ,就不一样了
举个例子说明一下 :
--测试
declare @i int set @i =3; set @i =null; select @i as '@i';
/*结果
@i
-----------
NULL
*/

浙公网安备 33010602011771号