当前位置: 代码迷 >> Sql Server >> 联接空值得到空值
  详细解决方案

联接空值得到空值

热度:60   发布时间:2016-04-27 10:44:19.0
连接空值得到空值
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
  相关解决方案