ANSI_NULLS和QUOTED_IDENTIFIER的推荐/默认设置是什么?我们应该将它们都打开吗?
答案 0 :(得分:7)
ANSI_NULLS
应始终为ON
。总是。
这就是原因。来自the documentation for SET ANSI_NULLS ON
:
在SQL Server的未来版本中,ANSI_NULLS将始终为ON,并且将选项明确设置为OFF的任何应用程序都将生成错误。避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序。
至于QUOTED_IDENTIFIER
,这更像是一个基于意见的问题。我并不在乎,因为我从未明确地设置选项,但如果你确实使用它,你应该始终如一地使用它。我不在乎的原因是因为我从不引用带有单引号或双引号的标识符;我认为这是非常难以理解的,使它们看起来像字符串:
SELECT 'alias' = "column" FROM "dbo"."table" AS 'alias';
真的?我更喜欢使用方括号,即使只是在需要时(例如标识符是保留字)。
SELECT alias = [column] FROM dbo.[table] AS alias;