数据库中null和''具体的区别


   数据库中null和''具体的区别

   今天在开发数据库的时候碰到了一个判断,判断其中的一个参数是否为空

   -- =============================================
-- Author:  zhwg
-- Create date: 2008-9-20
-- Description: 测试null 和 ''的区别
-- =============================================
Create PROCEDURE p_Test
 @argString varchar(2000)
AS
BEGIN
   Declare @strTest varchar(2000)
   Set @strTest = 'This is a test!'
   if @argString != '' And @argString != null
     Begin
        print @strTest + 'zhwg'
     End 

END
GO

如果不加判断@argString != null,即使输入参数值是''也仍然会打印出来This is a test!
而加入判断@argString != null,则不会输出打印。

不知道原因是什么,希望高手讲解

 

 

 

test_table中有字段test_char  varchar(20)
执行
update test_table
set test_char=null
之后
select integer(test_char)
from test_table
可以查询出test_char=null
但是
update test_table
set test_char=‘’
之后
select integer(test_char)
from test_table
就报sql error
所以请问null和‘’有什么区别啊?

--------------------------------------------------------------------------------
NULL 是 NULL,'' 是 ''。
就好比 C 语言里的 NULL 字符指针和 "" 字符串一样。

posted @ 2008-10-09 08:40  zijinguang  阅读(271)  评论(0编辑  收藏  举报