- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
注意:我检查了 Understanding QUOTED_IDENTIFIER它没有回答我的问题。
我让我的 DBA 运行我在 Prod 服务器上创建的索引(他们查看并批准了它)。
它像我想要的那样加快了我的查询速度。但是,我开始收到这样的错误:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE NONCLUSTERED INDEX [ix_ClientFilerTo0]
ON [ClientTable] ([Client])
INCLUDE ([ClientCol1],[ClientCol2],[ClientCol3] ... Many more columns)
WHERE Client = 0
CREATE NONCLUSTERED INDEX [IX_Client_Status]
ON [OrderTable] ([Client],[Status])
INCLUDE ([OrderCol1],[OrderCol2],[OrderCol3],[OrderCol4])
WHERE [Status] <= 7
GO
最佳答案
好的,从应用程序开发人员的角度来看,以下是这些设置的作用:
QUOTED_IDENTIFIER
此设置控制如何使用引号 ".."
由 SQL 编译器解释。当QUOTED_IDENTIFIER
为 ON 则引号被视为括号( [...]
)并可用于引用 SQL 对象名称,如表名、列名等。当它为 OFF 时(不推荐),则引号被视为撇号( '..'
) ) 并可用于在 SQL 命令中引用文本字符串。
ANSI_NULLS
此设置控制当您尝试使用除 IS
之外的任何比较运算符时会发生什么情况。在 NULL 上。当它为 ON 时,这些比较遵循标准,即与 NULL 比较总是失败(因为它不是一个值,它是一个标志)并返回 FALSE
.当此设置为 OFF 时(实际上是 而不是 推荐)您可以成功地将其视为一个值并使用 =
, <>
等,并在适当的情况下返回 TRUE。
处理此问题的正确方法是改用 IS
( ColumnValue IS NULL ..
)。
CONCAT_NULL_YIELDS_NULL
此设置控制字符串表达式中使用的 NULL 是否“传播”。当此设置为 ON 时,它遵循标准和表达式,如 'some string' + NULL ..
总是返回 NULL。因此,在一系列字符串连接中,一个 NULL 可以导致整个表达式返回 NULL。关闭此选项(同样,不推荐)将导致 NULL 被视为空字符串,因此 'some string' + NULL
只是评估为 'some string'
.
处理这个问题的正确方法是使用 COALESCE(或 ISNULL)函数:'some string' + COALESCE(NULL, '') ..
.
关于sql - ANSI_NULLS 和 QUOTED_IDENTIFIER 杀死了一些东西。它们是为了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19168179/
我想将 MySQL 数据库连接到 Assure Id 2009 软件。当我导入 SQL 文件时,出现如下错误: 未知的系统变量“ANSI_NULLS” 我的 SQL 是这样的: SET ANSI_NU
我想检查@a是否与“ ansi_nulls off”中的@b不同: set ansi_nulls off declare @a int = 1; declare @b int = null; sele
我写了一个触发器。 USE [TEST] GO /****** Object: Trigger [dbo].[TR_POSTGRESQL_UPDATE_YC] Script Date: 05/
在我们的数据库中有一个使用 ANSI_NULLS OFF 创建的表。 .现在我们已经使用这个表创建了一个 View 。我们想为这个 View 添加一个聚集索引。 在创建聚集索引时,它显示了一个错误,例
在运行一些查询之前,我必须设置 ANSI_NULLS 和其他一些数据库选项。所以在我的代码中 const string query_prefix = "SET ANSI_NULLS ON \n GO
我有一个问题,我们总是说 null =null 是假的,我想知道当 ansi_nulls 关闭时,这个声明“null=null”也是假的?谢谢 最佳答案 当 ANSI_NULLS OFF 时,NULL
SET ANSI_NULLS ON; -- Query1 SELECT 'StackOverFlow' AS Statement11 WHERE 'Name' IN ('S','Q', 'L', 'N
我今天正在处理 10 多年前编写的旧 Delphi 应用程序。部分应用程序包含将在应用程序中构建更新语句然后将它们发送到 SQL Server 以运行的组件。 我需要做的工作是尝试加快一些查询的速度。
我们在 ANSI_NULLS 设置和计算列方面存在一些问题,并且我们有大量的存储过程 SET ANSI_NULLS OFF 我们想将它们全部更改为 SET ANSI_NULLS ON 有没有一种简单的
SET ANSI_NULLS OFF 的作用是什么? 最佳答案 From MSDN: The SQL-92 standard requires that an equals (=) or not eq
我会认为 SET ANSI_NULLS OFF 模式非常方便,如果它始终如一地工作,我会默认使用它 - 允许在任何地方使用 = 或 != 来比较空值。但只有当我与显式内联 null 进行比较时它才有效
我想调用这个发送一个值的过程,该值可以是 NULL 或任何 int 值。 SELECT DomainName, DomainCode FROM Tags.tblDomain WHERE SubDoma
SET ANSI_NULLS OFF 似乎在 TSQL 中给出不同的结果,具体取决于您是比较表中的字段还是值。谁能帮助我理解为什么我的最后两个查询没有结果?我不是在寻找解决方案,只是在寻找解释。 se
定义说: When SET ANSI_NULLS is ON, a SELECT statement that uses WHERE column_name = NULL returns zero r
注意:我检查了 Understanding QUOTED_IDENTIFIER它没有回答我的问题。 我让我的 DBA 运行我在 Prod 服务器上创建的索引(他们查看并批准了它)。 它像我想要的那样加
所以我一直在创建脚本的时候盲目地使用ansi_nulls on,quoted_identifier on,因为sqlserver在脚本化对象的时候会自动生成它们.. 我真的没有时间关心这些琐碎的废话
documentation指出数据库 ANSI_NULLS 标志控制在某些方面与 null 进行比较的行为。 我在查 this stack overflow post检查如何确定(未设置)此标志的值。
我可以更改 SET ANSI_NULLS 的值通过使用 SET ANSI_NULLS OFF或 SET ANSI_NULLS ON 问题 #1 如何获得当前值? 问题 #2 设置值是否应用于查询? t
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 9 年前。 Improv
在搜索 ansi_nulls 时,我偶然发现了这篇文章,其中说 MySQL 没有实现 ansi_nulls,并且 MsSql 计划删除它:something about ansi_nulls 微软在2
我是一名优秀的程序员,十分优秀!