首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据库选项:为什么默认情况下新数据库的"SET ANSI_NULLS OFF“为OFF?

数据库选项:为什么默认情况下新数据库的"SET ANSI_NULLS OFF“为OFF?
EN

Stack Overflow用户
提问于 2016-08-22 03:15:47
回答 1查看 3.5K关注 0票数 9

使用SSMS 2014:

当我使用SSMS创建一个新数据库时,新数据库在默认设置下面有一些奇怪的设置。

代码语言:javascript
复制
ALTER DATABASE [del] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [del] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [del] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [del] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [del] SET ARITHABORT OFF 

当我测试脚本和存储过程时,ANSI_NULLS似乎已经启动了。

当我创建数据库时,为什么像ANSI_NULLS这样重要的设置是关闭的?在我的剧本里是怎么开始的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-22 04:28:33

它在我的剧本里是怎么开的?

使用set语句设置的连接级别设置覆盖ANSI_NULLS的默认数据库设置。

默认情况下,ODBC和OLE DB客户端在连接到Server实例时发出连接级别SET语句,将会话的ANSI_NULLS设置为ON。

当我创建数据库时,为什么像ANSI_NULLS这样重要的设置是关闭的?

我已经创建了有空和空的数据库,但是每次我尝试插入时,客户端驱动程序都会为我生成那些set选项。

下面是MSDN对此的看法。

在Server的未来版本中,ANSI_NULLS将始终处于打开状态,任何显式将选项设置为OFF的应用程序都会产生错误。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。

最近,我能想到为什么这个选项被设置为ON,可能是因为可移植性。

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

https://stackoverflow.com/questions/39070913

复制
相关文章

相似问题

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