CREATE XML INDEX(选择性 XML 索引)

在已通过现有选择性 XML 索引建立索引的单个路径上创建新的辅助选择性 XML 索引。 您还可以创建主要选择性 XML 索引。 有关信息,请参阅创建、更改和删除选择性 XML 索引

适用范围:SQL Server(SQL Server 2012 到当前版本)。

主题链接图标 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 
)

参数

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

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

    • database_name.schema_name.table_name

    • database_name..table_name

    • schema_name.table_name

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

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

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

  • WITH <index_options>
    有关索引选项的信息,请参阅 CREATE XML INDEX(选择性 XML 索引)

备注

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

限制和局限

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

安全性

权限

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

示例

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

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

请参阅

概念

选择性 XML 索引 (SXI)

Create, Alter, and Drop Secondary Selective XML Indexes