SQL Server 2008中的筛选索引

问题描述:

我在一个数据库表中创建了过滤的唯一索引。根据我的研究,如果我想要做的asp.net我需要如果我把上面的功能在以下设置操作转向我的连接SQL Server 2008中的筛选索引

SET CONCAT_NULL_YIELDS_NULL ON 
SET ANSI_PADDING ON 
SET ANSI_WARNINGS ON 

该表上的任何操作,会是怎样的效果呢?它是否导致任何问题?还有其他更好的选择吗?

在此先感谢

为您正确使用索引您需要的三个项目都没有。决定索引是否被使用的唯一最大因素是查询的构造,并且它是查询优化器引擎的评估。

不过,去与你带来了什么了,让我们检查使用三种:ON

SET CONCAT_NULL_YIELDS_NULL让我们借此声明SET @Name = @FirstName + ' ' + @LastName

如果@firstName为NULL或者@LastName是NULL,那么你的@Name将是NULL。如果你不希望这种行为 - 你要像NULL空字符串被处理,那么你SET CONCAT_NULL_YIELDS_NULL ON

SET ANSI_PADDING ON

这将在未来被废弃。在SQL Server上,默认设置为ON。事实上,在新版本的SQL Server上,你甚至不能把它关闭。

这会影响varchar列中的数据存储 - 例如,如果将其打开,则值TEST将与尾随空格一起存储(如果将其关闭为OFF),则会删除尾随空格。同样的事情适用于将零尾随到VarBinary列中。

SET ANSI_WARNINGS ON

这是分组和汇总。如果你在任何聚合函数中有一个NULL值,并且你想知道有一个NULL值,那么你将它设置为ON。如果你不关心从聚集中消除NULL,那么你把它关闭。