共用方式為


sp_indexes (Transact-SQL)

適用於:SQL Server

傳回指定遠端數據表的索引資訊。

Transact-SQL 語法慣例

語法

sp_indexes
    [ @table_server = ] N'table_server'
    [ , [ @table_name = ] N'table_name' ]
    [ , [ @table_schema = ] N'table_schema' ]
    [ , [ @table_catalog = ] N'table_catalog' ]
    [ , [ @index_name = ] N'index_name' ]
    [ , [ @is_unique = ] is_unique ]
[ ; ]

引數

[ @table_server = ] N'table_server'

執行 SQL Server 的連結伺服器名稱,其中會要求數據表資訊。 @table_server為 sysname,沒有預設值。

[ @table_name = ] N'table_name'

要為其提供索引資訊的遠端數據表名稱。 @table_name為 sysname 預設值為 NULL。 如果 NULL為 ,則會傳回指定資料庫中的所有數據表。

[ @table_schema = ] N'table_schema'

指定數據表架構。 @table_schema為 sysname,預設值為 NULL。 在 SQL Server 環境中,此值會對應至數據表擁有者。

[ @table_catalog = ] N'table_catalog'

@table_name所在的資料庫名稱。 @table_catalog為 sysname,預設值為 NULL。 如果 NULL為 , @table_catalog 預設為 master

[ @index_name = ] N'index_name'

要求資訊之索引的名稱。 @index_name為 sysname,預設值為 NULL

[ @is_unique = ] is_unique

要傳回資訊的索引類型。 @is_unique為,而且可以是下列其中一個值。

Description
1 傳回唯一索引的相關信息。
0 傳回非唯一索引的相關信息。
NULL (預設值) 傳回所有索引的相關信息。

結果集

資料行名稱 資料類型 描述
TABLE_CAT sysname 指定之數據表所在的資料庫名稱。
TABLE_SCHEM sysname 數據表的架構。
TABLE_NAME sysname 遠端資料表的名稱。
NON_UNIQUE smallint 索引是否是唯一的:

0 = 唯一
1 = 不是唯一的
INDEX_QUALIFER sysname 索引擁有者的名稱。 某些資料庫管理系統 (DBMS) 產品可讓數據表擁有者以外的使用者建立索引。 在 SQL Server 中,此數據行一律與 TABLE_NAME相同。
INDEX_NAME sysname 索引的名稱。
TYPE smallint 索引的類型:

0 = 資料表的統計數據
1 = Clustered
2 = 哈希
3 = 其他
ORDINAL_POSITION int 數據行在索引中的序數位置。 索引中的第一個資料列是 1。 這個資料行一律會傳回值。
COLUMN_NAME sysname 所傳回之每個數據行的數據 TABLE_NAME 行對應名稱。
ASC_OR_DESC varchar 定序中使用的順序:

A = 遞增
D = 遞減
NULL = 不適用

SQL Server 一律會傳 A回 。
CARDINALITY int 資料表中的資料列數,或索引中的唯一值數目。
PAGES int 要儲存索引或數據表的頁數。
FILTER_CONDITION nvarchar(4000) SQL Server 不會傳回值。

權限

SELECT需要架構的許可權。

範例

下列範例會從Employees連結伺服器上的資料庫Seattle1數據表AdventureWorks2022傳回所有索引資訊。

EXEC sp_indexes @table_server = 'Seattle1',
    @table_name = 'Employee',
    @table_schema = 'HumanResources',
    @table_catalog = 'AdventureWorks2022';