使用 SSMS 2014:
当我使用 SSMS 创建新数据库时,新数据库的默认设置有一些奇怪的地方
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 实际上是 ON 的。
我很困惑为什么在创建数据库时像 ANSI_NULLS 这样重要的设置是 OFF 的?以及它如何在我的脚本中变为ON?
它如何在我的脚本中变为ON?
使用 SET 语句设置的连接级设置会覆盖 ANSI_NULLS 的默认数据库设置。
默认情况下,在连接到 SQL Server 实例时,ODBC 和 OLE DB 客户端会发出连接级 SET 语句,将会话的 ANSI_NULLS 设置为 ON。
我很困惑为什么在创建数据库时像 ANSI_NULLS 这样重要的设置是 OFF 的?
我已经创建了空值关闭和打开的数据库,但是每次我尝试插入时,客户端驱动程序都会为我生成这些设置选项
下面是 MSDN 对此的说法。
在 SQL Server 的未来版本中,ANSI_NULLS 将始终为 ON,任何显式将该选项设置为 OFF 的应用程序都会产生错误。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
最接近,我可以想到为什么这个选项设置为ON,可能是由于兼容性
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)