CREATE XML INDEX(选择性 XML 索引)

在已通过现有选择性 XML 索引建立索引的单个路径上创建新的辅助选择性 XML 索引。

有关详细信息,请参阅下列主题:

您还可以创建主要选择性 XML 索引。 有关信息,请参阅创建、更改和删除选择性 XML 索引

主题链接图标 Transact-SQL 语法约定

语法

CREATE XML INDEX index_name
ON <table_object> (xml_column_name)
USING XML INDEX sxi_index_name
FOR (<xquery_or_sql_values_path>)
[WITH (<index_options>)]

<table_object> ::= { [ database_name. [ schema_name ] . | schema_name. ] table_name }

<xquery_or_sql_values_path>::= <path_name> 

<path_name> ::= <character string literal>

<xmlnamespace_list> ::= <xmlnamespace_item> [, <xmlnamespace_list>]

<xmlnamespace_item> ::= xmlnamespace_uri AS xmlnamespace_prefix

<index_options> ::= (  
  | PAD_INDEX  = { ON | OFF }
  | FILLFACTOR = fillfactor
  | SORT_IN_TEMPDB = { ON | OFF }
  | IGNORE_DUP_KEY =OFF
  | DROP_EXISTING = { ON | OFF }
  | ONLINE = OFF
  | ALLOW_ROW_LOCKS = { ON | OFF }
  | ALLOW_PAGE_LOCKS = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism

)

参数

CREATE 子句

  • index_name
    要创建的新索引的名称。 索引名称在表中必须唯一,但在数据库中不必唯一。 索引名称必须符合标识符的规则。

例如:CREATE XML INDEX filt_sxi_index_c

ON 子句

  • <table_object>
    包含要建立索引的 XML 列的表。 您可以使用下列格式:

    • database_name.schema_name.table_name

    • database_name..table_name

    • schema_name.table_name

  • xml_column_name
    包含要建立索引的路径的 XML 列的名称。

例如:ON Tbl(xmlcol)

USING XML INDEX 子句

  • sxi_index_name
    现有选择性 XML 索引的名称。

例如:USING XML INDEX sxi_index

FOR 子句

  • <xquery_or_sql_values_path>
    要在其上创建辅助选择性 XML 索引的已建立索引的路径名称。 要建立索引的路径是从 CREATE SELECTIVE XML INDEX 语句分配的名称。 有关详细信息,请参阅 CREATE SELECTIVE XML INDEX

例如:

FOR
(
    pathabc
)

WITH 子句

备注

对于基表中的每个 XML 列,可能有多个辅助选择性 XML 索引。

限制和局限

XML 列中必须存在选择性 XML 索引,然后才能对该列创建辅助选择性 XML 索引。

安全性

权限

要求对表或视图具有 ALTER 权限。 用户必须是 sysadmin 固定服务器角色的成员,或者是 db_ddladmindb_owner 固定数据库角色的成员。

示例

下面的示例对路径 'pathabc' 创建辅助选择性 XML 索引。 要建立索引的路径是从 CREATE SELECTIVE XML INDEX 分配的名称。

CREATE XML INDEX filt_sxi_index_c
ON Tbl(xmlcol)
USING XML INDEX sxi_index
FOR
(
    pathabc
)

请参阅

概念

选择性 XML 索引 (SXI)

创建、更改和删除辅助选择性 XML 索引