- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我们的生产环境在 SQL Server 2012 上创建一个新数据库。当我使用 SQL Server Management Studio 中的“新建数据库...”选项并生成输出时,我得到:
CREATE DATABASE [AAA]
CONTAINMENT = NONE
ON PRIMARY
( NAME = N'AAA', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQL2014\MSSQL\DATA\AAA.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )
LOG ON
( NAME = N'AAA_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQL2014\MSSQL\DATA\AAA_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
ALTER DATABASE [AAA] SET COMPATIBILITY_LEVEL = 120
GO
ALTER DATABASE [AAA] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [AAA] SET ANSI_NULLS OFF
GO
ALTER DATABASE [AAA] SET ANSI_PADDING OFF
GO
ALTER DATABASE [AAA] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [AAA] SET ARITHABORT OFF
GO
ALTER DATABASE [AAA] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [AAA] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [AAA] SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF)
GO
ALTER DATABASE [AAA] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [AAA] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [AAA] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [AAA] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [AAA] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [AAA] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [AAA] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [AAA] SET DISABLE_BROKER
GO
ALTER DATABASE [AAA] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
GO
ALTER DATABASE [AAA] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [AAA] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [AAA] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [AAA] SET READ_WRITE
GO
ALTER DATABASE [AAA] SET RECOVERY SIMPLE
GO
ALTER DATABASE [AAA] SET MULTI_USER
GO
ALTER DATABASE [AAA] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [AAA] SET TARGET_RECOVERY_TIME = 0 SECONDS
GO
ALTER DATABASE [AAA] SET DELAYED_DURABILITY = DISABLED
GO
USE [AAA]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [AAA] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO
为什么这么多 ANSI 选项默认为 OFF?服务器实例是由 RackSpace 代表我们设置的。难道是因为他们在实例中设置了一些默认值?
谢谢,克里斯
最佳答案
这些选项默认为OFF
,因为很可能该数据库是在没有触及任何默认值的情况下创建和编写的。创建数据库时,它本质上是从 model
系统数据库克隆的,在全新安装的 SQL Server 上,数据库上的 ANSI 设置将为 OFF
,甚至尽管其中一些设置(如 ANSI_NULLS)对于任何现代数据库应用程序来说都是您绝对不想关闭的选项。事实上,特别是在 ANSI_NULLS
的情况下,文档指定完全关闭它的能力是 deprecated ,尽管实际情况可能还需要几年的时间。
这就是问题所在:为了旧应用程序的利益,这些设置仍然保持OFF
,旧应用程序必须在很久以前就将这些选项ON
打开才能从它们的功能中受益。善良(和突破性的改变)。如果 session 没有为它们指定值,则应用数据库设置。
但大多数应用程序确实在 session 中指定这些设置,如果没有显式指定,则通过其数据访问库隐式指定。根据 SET ANSI_DEFAULTS
上的文档,它一次切换一堆设置:
The SQL Server Native Client ODBC driver and SQL Server Native Client OLE DB Provider for SQL Server automatically set
ANSI_DEFAULTS
toON
when connecting. The driver and Provider then setCURSOR_CLOSE_ON_COMMIT
andIMPLICIT_TRANSACTIONS
toOFF
. TheOFF
settings forSET CURSOR_CLOSE_ON_COMMIT
andSET IMPLICIT_TRANSACTIONS
can be configured in ODBC data sources, in ODBC connection attributes, or in OLE DB connection properties that are set in the application before connecting to SQL Server. The default forSET ANSI_DEFAULTS
isOFF
for connections from DB-Library applications.
DB-Library 是一个旧的访问库,但仍然被一些古老的应用程序使用,并且可以选择作为 FreeTDS 等内容的后备源,因此您仍然经常会遇到有意或无意使用数据库设置的应用程序,但这种情况越来越罕见。
至于这些选项的最佳值,这完全取决于您的用例。如果您必须支持期望旧行为的旧应用程序,您可能别无选择,必须将数据库设置保留为OFF
。如果您有一个通过旧库连接的应用程序,但确实需要现代 SQL 语义,您可能需要将它们ON
。对于所有其他应用程序,这些选项可能已经由应用程序本身在每个 session 的基础上设置为正确(不)的值,并且您配置的内容无论如何都无关紧要。
对每个选项以及您何时想要打开
或关闭
进行讨论将超出合理答案的限制。请参阅每个文档的文档并制定您自己的最佳实践。您可以让类似 SET
option requirements for indexes on computed columns 的内容指导您,这需要在您创建它们之前先ON
一堆选项(并且通常认为拥有它们是一件好事)。
关于sql - 创建新数据库时的最佳 ANSI 选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40892178/
SQLite、Content provider 和 Shared Preference 之间的所有已知区别。 但我想知道什么时候需要根据情况使用 SQLite 或 Content Provider 或
警告:我正在使用一个我无法完全控制的后端,所以我正在努力解决 Backbone 中的一些注意事项,这些注意事项可能在其他地方更好地解决......不幸的是,我别无选择,只能在这里处理它们! 所以,我的
我一整天都在挣扎。我的预输入搜索表达式与远程 json 数据完美配合。但是当我尝试使用相同的 json 数据作为预取数据时,建议为空。点击第一个标志后,我收到预定义消息“无法找到任何内容...”,结果
我正在制作一个模拟 NHL 选秀彩票的程序,其中屏幕右侧应该有一个 JTextField,并且在左侧绘制弹跳的选秀球。我创建了一个名为 Ball 的类,它实现了 Runnable,并在我的主 Draf
这个问题已经有答案了: How can I calculate a time span in Java and format the output? (18 个回答) 已关闭 9 年前。 这是我的代码
我有一个 ASP.NET Web API 应用程序在我的本地 IIS 实例上运行。 Web 应用程序配置有 CORS。我调用的 Web API 方法类似于: [POST("/API/{foo}/{ba
我将用户输入的时间和日期作为: DatePicker dp = (DatePicker) findViewById(R.id.datePicker); TimePicker tp = (TimePic
放宽“邻居”的标准是否足够,或者是否有其他标准行动可以采取? 最佳答案 如果所有相邻解决方案都是 Tabu,则听起来您的 Tabu 列表的大小太长或您的释放策略太严格。一个好的 Tabu 列表长度是
我正在阅读来自 cppreference 的代码示例: #include #include #include #include template void print_queue(T& q)
我快疯了,我试图理解工具提示的行为,但没有成功。 1. 第一个问题是当我尝试通过插件(按钮 1)在点击事件中使用它时 -> 如果您转到 Fiddle,您会在“内容”内看到该函数' 每次点击都会调用该属
我在功能组件中有以下代码: const [ folder, setFolder ] = useState([]); const folderData = useContext(FolderContex
我在使用预签名网址和 AFNetworking 3.0 从 S3 获取图像时遇到问题。我可以使用 NSMutableURLRequest 和 NSURLSession 获取图像,但是当我使用 AFHT
我正在使用 Oracle ojdbc 12 和 Java 8 处理 Oracle UCP 管理器的问题。当 UCP 池启动失败时,我希望关闭它创建的连接。 当池初始化期间遇到 ORA-02391:超过
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve
引用这个plunker: https://plnkr.co/edit/GWsbdDWVvBYNMqyxzlLY?p=preview 我在 styles.css 文件和 src/app.ts 文件中指定
为什么我的条形这么细?我尝试将宽度设置为 1,它们变得非常厚。我不知道还能尝试什么。默认厚度为 0.8,这是应该的样子吗? import matplotlib.pyplot as plt import
当我编写时,查询按预期执行: SELECT id, day2.count - day1.count AS diff FROM day1 NATURAL JOIN day2; 但我真正想要的是右连接。当
我有以下时间数据: 0 08/01/16 13:07:46,335437 1 18/02/16 08:40:40,565575 2 14/01/16 22:2
一些背景知识 -我的 NodeJS 服务器在端口 3001 上运行,我的 React 应用程序在端口 3000 上运行。我在 React 应用程序 package.json 中设置了一个代理来代理对端
我面临着一个愚蠢的问题。我试图在我的 Angular 应用程序中延迟加载我的图像,我已经尝试过这个2: 但是他们都设置了 src attr 而不是 data-src,我在这里遗漏了什么吗?保留 d
我是一名优秀的程序员,十分优秀!