SQL SERVER中关于NULL的设定
/***************************************************
作者: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 table和alter 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 及ANSI_NULL_DEFT_OFF是互斥选项,用于指明是否覆盖数据库选项,当开启一个选项时,都会迫使相反的那个选项关闭;但是关闭某个选项时,不会使相反的那个选项打开,而只是不再开启该选项。如果两个选项都关闭,那么将会启用数据库选项。
【测试3】
SET ANSI_NULL_DFLT_ON OFF
SET ANSI_NULL_DFLT_Off OFF
Go
create table tb(id int,col char(10))—ANSI NULL默认为false
查看该表的属性,可以看到该表的两列不允许为空;
【测试4】
SET ANSI_NULL_DFLT_ON OFF
SET ANSI_NULL_DFLT_Off OFF
Go
create table tb(id int,col char(10))—ANSI NULL默认为true
查看该表的属性,可以看到该表的两列允许为空;
二、SET CONCAT_NULL_YIELDS_NULL
当开启SET CONCAT_NULL_YIELDS_NULL时,如果串联操作的两个操
相关文档:
方法一:
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608 h
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 11 ......
1、Datediff:
1.1算出日期差:
1.access: datediff('d',fixdate,getdate())
2.sqlserver: datediff(day,fixdate,getdate())
ACCESS实例: select * from table where data=datediff('d',fixdate,getdate())
sqlserver实例: select * from ......
sysaltfiles 在master数据库中,包含与数据库文件相对应的信息,包含所有数据库的数据文件以及日志文件
列名数据类型描述
fileid
smallint
每个数据库的唯一文件标识号。1代表数据文件,2代表日志文件
groupid
smallint
文件组标识号。
size
int
文件大小(以 8 KB 页为单位)。页的数目
maxsize
......
select GETDATE() as '当前日期',
DateName(year,GetDate()) as '年',
DateName(month,GetDate()) as '月',
DateName(day,GetDate()) as '日',
DateName(dw,GetDate()) as '星期',
DateName(week,GetDate()) as '周数',
DateName(hour,GetDate()) as '时',
DateName(minute,GetDate()) as '分',
DateName(second,Ge ......