首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

联接空值得到空值

2012-10-18 
连接空值得到空值SQL codeALTER DATABASE XMMDS SET CONCAT_NULL_YIELDS_NULL OFFselect databaseproperty

连接空值得到空值

SQL code
ALTER DATABASE XMMDS SET CONCAT_NULL_YIELDS_NULL OFFselect databasepropertyex('XMMDS','ISNULLCONCAT')/*0*/SELECT 'ACVS'+NULL/*NULL*/--请问这是为什么


[解决办法]
根据存储引擎中介绍
set 选项总是会覆盖相应的数据库选项,不论SET选项是on还是off.
数据库起作用唯一情况是SET选项没有被碰过时
因此可以吧ANSI_NULL及CONCAT_NULL_YIELDS_NULL 选项想象成三种值:ON,OFF,从未被设置
如果SET选项是OF或者OFF数据库选项就会被忽略
建议用户写查询与选项无关的查询
如果非要写选项
用户应该依赖会话级别的选项而不是数据库级别的选项
[解决办法]
需要注意的是
许多工具
例如ODBC,包括SQL Server Management等连接SQL Server工具
都会启用会话级别的选项
这些选项会覆盖数据库选项,是的看起来ON行为好像是默认行为一样

DBCC USEROPTIONS可以看到当前连接被显式设置的值quoted_identifier SET
arithabort SET
ansi_null_dflt_on SET
ansi_warnings SET
ansi_padding SET
ansi_nulls SET
concat_null_yields_null SET

热点排行