SQL SERVER中关于NULL的设定

本文详细介绍了SQL SERVER2005中关于NULL的设定,包括ANSI_NULL_DEFT_ON/OFF、SET CONCAT_NULL_YIELDS_NULL、SET ANSI_NULLS以及SET ANSI_DEFAULTS的影响,并通过多个测试案例展示了不同设定下的NULL处理结果。了解这些设定有助于避免因NULL处理产生的意外结果。
摘要由CSDN通过智能技术生成

/***************************************************  

          作者:herowang(让你望见影子的墙)

    日期:2009.12.19

          注:    转载请保留此信息

    更多内容,请访问我的博客:blog.csdn.net/herowang

****************************************************/

SQL SERVER2005中关于NULL的设定

NULL处理时SQL SERVER中一个比较麻烦的事情,有许多处理可能因为NULL而得到一些预想不到的结果。NULL在数据库中一般有三层含义:1、该属性值不适合该实体;2、该实体还没有改属性;3、该实体有该属性,但是现在还不知道。

对于NULL的使用,和数据库的选项和会话的设置是息息相关的,也就是说不同的数据库的选项和会话的设置,对NULL的处理方式是不一样的。对于影响NULL处理的设置有如下几种:

一、ANSI_NULL_DEFT_ON ANSI_NULL_DEFT_OFF

当该选项为OFF时,通过create tablealter table创建的新列默认为not null,对应的数据库选项为ANSI NULL默认值为false。当该选项为On时,则默认值为null,对应的数据库选项为ANSI NULL默认值为TRUE

【测试1

SET ANSI_NULL_DFLT_ON OFF

go

create table test1(id int,col char(10))

查看该表的属性,可以看到该表的两列不为空;

【测试2

SET ANSI_NULL_DFLT_ON ON

go

create table test2(id int,col char(10))

查看该表的属性,可以看到该表的两列为空;

对于ANSI_NULL_DEFT_ON

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值