扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 xiaoqiao 来源:天新网 2008年3月27日
关键字: Mssql SQL SQL Server 数据库
只要满足下列要求,则可在计算列上定义索引:
computed_column_expression 必须是确定性的。如果表达式对一组给定的输入总是返回同样的结果,则该表达式是确定性的。在下列情况中,computed_column_expression 是确定性的:
◆表达式引用的所有函数都是确定和精确的。这包括用户定义的函数和内置函数。
◆表达式引用的所有列都来自包含计算列的表。
◆没有列引用从多行拉数据。例如,聚合函数(如 SUM 或 AVG)依靠来自多行的数据,这使得 computed_column_expression 不确定。
COLUMNPROPERTY 函数的 IsDeterministic 属性报告 computed_column_expression 是否确定。
计算列表达式在下列情况中精确:
◆非 float 数据类型表达式。
◆其定义中不使用 float 数据类型。例如,在下列语句中,列 y 为 int 型并且确定,但不精确:
|
COLUMNPROPERTY 函数的 IsPrecise 属性报告 computed_column_expression 是否精确。
说明 任何 float 型表达式都被认为是不精确的,不能作为索引键;float 型表达式可以用在索引视图中,但不能作为键。对于计算列同样如此。如果函数、表达式、用户定义的函数或视图定义中包含任何 float 表达式(包括逻辑表达式(比较)),则被认为是不确定的。
执行 CREATE TABLE 语句时,必须将 ANSI_NULL 连接级选项设置为 ON。OBJECTPROPERTY 函数通过 IsAnsiNullsOn 属性报告此选项是否已打开。
为计算列定义的 computed_column_expression 不能取值为 text、ntext 或 image 数据类型。
对于创建索引的连接和所有尝试使用 INSERT、UPDATE 或 DELETE 语句更改索引值的连接,必须使六个 SET 选项设置为 ON,一个选项设置为 OFF。如果不具有上述选项设置的连接执行了任何 SELECT 语句,优化器将忽略计算列上的索引。
下列选项必须设置为 ON:
◆ANSI_NULLS
◆ANSI_PADDING
◆ANSI_WARNINGS
◆ARITHABORT
◆CONCAT_NULL_YIELDS_NULL
◆QUOTED_IDENTIFIER
除上述 ON 设置外,NUMERIC_ROUNDABORT 选项必须设置为 OFF。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者