首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过MS在运行时确定CONCAT_NULL_YIELDS_NULL的默认值?

如何通过MS在运行时确定CONCAT_NULL_YIELDS_NULL的默认值?
EN

Stack Overflow用户
提问于 2016-08-10 19:16:59
回答 1查看 369关注 0票数 2

根据MS 2008R2的Microsoft文档,

1)如果未指定SET CONCAT_NULL_YIELDS,则应用CONCAT_NULL_YIELDS_NULL数据库选项的设置 2) SET CONCAT_NULL_YIELDS_NULL的设置在执行或运行时设置,而不是在解析时设置。

我把这个解释为

一旦您在不提供SET CONCAT_NULL_YIELDS_NULL命令的情况下连接到数据库,它将默认通过数据库选项设置它。

为了验证这一点,我创建了一个名为Test的数据库(带有选项CONCATENATE NULL YIELDS NULL=FALSE )和一个登录名,默认为该数据库,并使用SQLCMD执行以下SQL语句。

代码语言:javascript
运行
复制
set nocount on
declare @dbName sysname

select @dbName = DB_NAME() 
select 'I am in database =',@dbName


select 'The CONCAT_NULL_YIELDS_NULL setting is =', is_concat_null_yields_null_on 
from sys.databases
where name = @dbName

IF ( (4096 & @@options) = 4096 ) 
begin
   select 'CONCAT_NULL_YIELDS_NULL is ON' 
end
else
begin
   select 'CONCAT_NULL_YIELDS_NULL is OFF' 
end
go

上面的SQL的输出是

代码语言:javascript
运行
复制
I am in database = Test

                                         is_concat_null_yields_null_on

The CONCAT_NULL_YIELDS_NULL setting is = 0



CONCAT_NULL_YIELDS_NULL is ON

为什么CONCAT_NULL_YIELDS_NULL ON应该关闭,因为数据库测试将此选项设置为OFF?

我对M.S文件的解释是错误的还是文件本身是错的?

我知道这个特性被标记为弃用,但我的理解是,它对于MS SQL2008R2仍然是活动的。

EN

回答 1

Stack Overflow用户

发布于 2016-08-10 19:25:22

数据库选项不是很相关,因为各种客户端库和工具都有自己的默认设置,它们在连接时代表您设置。

Erland Sommarskog 把它们列在这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38881803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档