使用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似乎已经启动了。
当我创建数据库时,为什么像ANSI_NULLS这样重要的设置是关闭的?在我的剧本里是怎么开始的?
发布于 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,可能是因为可移植性。
https://stackoverflow.com/questions/39070913
复制相似问题