[SQL SERVER][Performance]重视 Null 值 (2)
上一篇我谈到 Null 一些注意事项,大概有以下2点。
1.数据表中明确使用 Not Null 并指定 Default Values
2.数据表中尽可能不允许 Null 值。
这篇我们来看看数据库相关Null选项。
ANSI NULL 默认值:(请明确使用关键字,并不依赖数据库选项)
覆写新数据行的默认 Null 属性。
(撷取部分)
参考: SET ANSI_NULL_DFLT_ON (Transact-SQL) 、SET ANSI_NULL_DFLT_OFF (Transact-SQL)
ANSI NULLS 已启用:(建议 True)
指定搭配 Null 值一起使用时,等于 (=) 和不等于 (<>) 比较操作符的 ISO 标准行为。
(撷取部分)
返回0笔数据
set ansi_nulls on
select * from testnull
where c1 = NULL
返回所有 Null 数据
set ansi_nulls off
select * from testnull
where c1 = NULL
参考:SET ANSI_NULLS (Transact-SQL)
ANSI 填补已启用:(建议 True)
控制数据行如何保存比数据行的定义大小还短的值,
以及如何保存 char、varchar、binary 和 varbinary 数据含有尾端空格的值。
(撷取部分)
参考:SET ANSI_PADDING (Transact-SQL)
ANSI 警告已启用:(依需求设定,并不依赖数据库选项)
指定数个错误状况的 ISO 标准行为。
(撷取部分)
参考:SET ANSI_WARNINGS (Transact-SQL)
串连 Null 产生 Null:(建议 True)
控制是否将串连结果当作 Null 或空字符串值来处理。
(撷取部分)
SET CONCAT_NULL_YIELDS_NULL on
select 'rico'+null
SET CONCAT_NULL_YIELDS_NULL off
select 'rico'+null
参考:SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
原文:大专栏 [SQL SERVER][Performance]重视 Null 值 (2)