- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我一直在创建脚本的时候盲目地使用ansi_nulls on,quoted_identifier on,因为sqlserver在脚本化对象的时候会自动生成它们..
我真的没有时间关心这些琐碎的废话 :-) 但我想这些问题必须要问。
鉴于这些是推荐的设置,是否有一个选项可以设置为 (a) 每个数据库,和 (b) 每个服务器,以便它们在默认情况下始终处于打开状态,而不是通过单独的脚本设置?
如果是这样,如何/在哪里可以查看当前的默认设置?
最佳答案
当您希望使用 SQL Server Management Studio(SSMS) 2015 Express 创建一个新的 SP 时,它会生成一个类似于以下片段的模板,其中包含语句 'SET ANSI_NULLS ON'
,' SET QUOTED_IDENTIFIER ON'
,'SET NOCOUNT ON'
默认:
当 ANSI_NULLS 为 ON 时,使用 WHERE column_name = NULL 的 SELECT 语句返回零行,即使 column_name 中有空值也是如此。根据 ANSI(美国国家标准协会) 执行的任何比较或计算与 NULL 是 NULL。 NULL 既不是字符串也不是数字也不是零。它只是未定义。所以,当我执行 SET ANSI_NULLS ON
时;我只是告诉 SQL SERVER 遵循 ANSI 的标准。
当 ANSI_NULLS 设置为 ON 时。 ‘=’运算符无法识别 NULL。这是 ANSI 的标准,任何与 NULL 的比较总是 NULL。所以你永远不会为此得到结果。要在列中查找 NULL,我们使用关键字 ‘IS NULL’。
<强>2。将 QUOTED_IDENTIFIER 设置为:
简单来说,当您执行 SET QUOTED_IDENTIFIER ON
时,您可以使用 SQL 标识符或 SQL 中的保留关键字作为用户定义的对象。它必须在双引号内定义,因此名称为QUOTED_IDENTIFIER。
考虑一种情况,您希望列名称为“Identity”。但是 Identity 是 SQL Server 的关键字。它将如何区分用户引用的身份或 T-SQL 引用的身份。这就是引用标识符派上用场的地方。
当 SET QUOTED_IDENTIFIER 为 ON(默认)时,所有由双引号分隔的字符串都被解释为对象标识符。因此,带引号的标识符不必遵循标识符的 Transact-SQL 规则。它们可以是保留关键字,并且可以包含 Transact-SQL 标识符中通常不允许使用的字符。
引用资料请引用:
关于SQL SERVER 和 SET ANSI_NULLS ON,SET QUOTED_IDENTIFIER ON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54765112/
我是一名优秀的程序员,十分优秀!