ANSI_NULLS和QUOTED_IDENTIFIER的推荐/默认设置

J.W*_*.W. 4 t-sql sql-server

什么是ANSI_NULLS和QUOTED_IDENTIFIER的推荐/默认设置,我们是否应该同时启用?

Aar*_*and 7

ANSI_NULLS应该永远ON.总是.

这就是原因.从以下文档SET ANSI_NULLS ON:

在SQL Server的未来版本中,ANSI_NULLS将始终为ON,并且将选项明确设置为OFF的任何应用程序都将生成错误.避免在新的开发工作中使用此功能,并计划修改当前使用此功能的应用程序.

至于QUOTED_IDENTIFIER,这更像是一个基于意见的问题.我并不在乎,因为我从未明确地设置选项,但如果你确实使用它,你应该始终如一地使用它.我不在乎的原因是因为我从不引用带有单引号或双引号的标识符; 我认为这是非常难以理解的,使它们看起来像字符串:

SELECT 'alias' = "column" FROM "dbo"."table" AS 'alias';
Run Code Online (Sandbox Code Playgroud)

真?我更喜欢使用方括号,即使只是在需要时(例如标识符是保留字).

SELECT alias = [column] FROM dbo.[table] AS alias;
Run Code Online (Sandbox Code Playgroud)