黑马程序员-数据库中的 is 与 =

本文介绍了SQL Server中变量赋值与比较NULL的区别,强调了在判断NULL时应使用IS NULL。当声明变量未赋值时,变量未在内存中定义,无法与NULL进行值比较。而IS NULL会检查变量地址及其值是否为未知,确保正确比较。文章还提及了ANSI_NULLS设置对等于(NULL)操作的影响,建议避免使用= NULL和<> NULL以防止意外结果。
摘要由CSDN通过智能技术生成
---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------


 

当我们在 sql server 中用 DECLARE 申明一个变量时, sql server 将会把变量存储在SQLs 内存空间的变量列表区域(variable table),变量列表中包含了变量的名称和存储地址。然而如果我们在创建变量的时候并没有给变量赋值的话,sql server是没有为变量分配内存的,因此变量并没有在内存中被定义。
然后当你用 SET 关键字给变量赋值的话,sql server 将为这个值分配内存空间并将地址存放在变量列表(variable table)中。如果你再次为这个变量赋值的话新的内存地址将替换旧的地址。

“= NULL”

    “= NULL”是值表达式。意味着,这个表达式会判断是否已经为变量正确设置了值。事实上我们是可以设置一个变量的值为 NULL 的(如果设置变量 = NULL,这就说明变量的值是未知的 unknown)。参考下面的代码。

DECLARE @val CHAR(4)

SET @val = NULL


    我们显式给变量赋值 NULL,sql server会为变量分配内存空间并指出变量值是未知的 unknown,因此下面的表达式将返回true&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值