[SQL SERVER][Performance]重视 Null 值 (2)

[SQL SERVER][Performance]重视 Null 值 (2)


上一篇我谈到 Null 一些注意事项,大概有以下2点。

1.数据表中明确使用 Not Null 并指定 Default Values

2.数据表中尽可能不允许 Null 值。

这篇我们来看看数据库相关Null选项。

image

ANSI NULL 默认值:(请明确使用关键字,并不依赖数据库选项)

覆写新数据行的默认 Null 属性

image

扫描二维码关注公众号,回复: 7264935 查看本文章

(撷取部分)

参考: SET ANSI_NULL_DFLT_ON (Transact-SQL) 、SET ANSI_NULL_DFLT_OFF (Transact-SQL)

ANSI NULLS 已启用:(建议 True)

指定搭配 Null 值一起使用时,等于 (=) 和不等于 (<>) 比较操作符的 ISO 标准行为。

image

(撷取部分)

返回0笔数据

set ansi_nulls on
select * from testnull
where c1 = NULL 

image

返回所有 Null 数据

set ansi_nulls off
select * from testnull
where c1 = NULL 

image

参考:SET ANSI_NULLS (Transact-SQL)

ANSI 填补已启用:(建议 True)

控制数据行如何保存比数据行的定义大小还短的值,

以及如何保存 char、varchar、binary 和 varbinary 数据含有尾端空格的值。

image

(撷取部分)

参考:SET ANSI_PADDING (Transact-SQL)

 

ANSI 警告已启用:(依需求设定,并不依赖数据库选项)

指定数个错误状况的 ISO 标准行为。

image

(撷取部分)

参考:SET ANSI_WARNINGS (Transact-SQL)

 

串连 Null 产生 Null:(建议 True)

控制是否将串连结果当作 Null 或空字符串值来处理。

image

image

(撷取部分)

 

SET CONCAT_NULL_YIELDS_NULL on
select 'rico'+null

image

 

SET CONCAT_NULL_YIELDS_NULL off
select 'rico'+null

image 

参考:SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)

原文:大专栏  [SQL SERVER][Performance]重视 Null 值 (2)


猜你喜欢

转载自www.cnblogs.com/chinatrump/p/11514488.html