mssql的视图索引创建
1.
-
当执行 CREATE VIEW 语句时,ANSI_NULLS 和 QUOTED_IDENTIFIER 选项必须设置为 ON。OBJECTPROPERTY 函数通过 ExecIsAnsiNullsOn 或 ExecIsQuotedIdentOn 属性为视图报告此信息。
-
要执行所有 CREATE TABLE 语句以创建视图引用的表,ANSI_NULLS 选项必须设置为 ON。
-
视图不能引用任何其他视图,只能引用基表。
-
视图引用的所有基表必须与视图位于同一数据库中,并且所有者也与视图相同。
-
必须使用 SCHEMABINDING 选项创建视图。架构绑定将视图绑定到基础基表的架构。
-
必须已使用 SCHEMABINDING 选项创建了视图引用的用户定义函数。
-
表和用户定义函数必须由视图中由两部分组成的名称引用。不允许由一部分、三部分和四部分组成的名称引用它们。
-
视图中的表达式引用的所有函数必须是确定的。OBJECTPROPERTY 函数的 IsDeterministic 属性报告用户定义函数是否具有确定性。有关详细信息,请参阅确定性函数和不确定性函数。
对视图创建的第一个索引必须是唯一聚集索引。创建唯一聚集索引后,可以创建其他非聚集索引。视图的索引命名约定与表的索引命名约定相同。唯一的区别是表名替换为视图名。有关详细信息,请参阅 CREATE INDEX (Transact-SQL)。
CREATE INDEX 除了符合 CREATE INDEX 的常规要求之外,还必须符合下列要求:
-
执行 CREATE INDEX 语句的用户必须是视图所有者。
-
执行 CREATE INDEX 语句时,下列 SET 选项必须设置为 ON:
-
ANSI_NULLS
-
ANSI_PADDING
-
ANSI_WARNINGS
-
CONCAT_NULL_YIELDS_NULL
-
QUOTED_IDENTIFIER
-
-
NUMERIC_ROUNDABORT 选项必须设置为 OFF。这是默认设置。
-
如果数据库在 80 或更低的兼容模式下运行,则 ARITHABORT 选项必须设置为 ON。
-
创建聚集索引或非聚集索引时,IGNORE_DUP_KEY 选项必须设置为 OFF(默认设置)。
-
即使 CREATE INDEX 语句中未引用 text、ntext 或 image 列,视图中也不能包含这些列。
-
如果视图定义中的 SELECT 语句指定了一个 GROUP BY 子句,则唯一聚集索引的键只能引用在 GROUP BY 子句中指定的列。
-
构成索引键列值的不精确表达式必须引用视图下基表中的存储列。该列可以是常规存储列,也可以是持久化计算列。其他不精确表达式不能作为索引视图的键列的一部分。

浙公网安备 33010602011771号