分享方式:


sp_indexes (Transact-SQL)

適用於:SQL Server

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

Transact-SQL 語法慣例

語法

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

引數

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

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

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

[ @table_catalog= ] 'table_db'
這是table_name所在的資料庫名稱。 table_db為 sysname,預設值為 NULL。 如果為 NULL,table_db預設為 master

[ @index_name= ] 'index_name'
這是要求資訊之索引的名稱。 indexsysname,預設值為 NULL。

[ @is_unique= ] 'is_unique'
這是要傳回資訊的索引類型。 is_unique為 bit,預設值為 NULL,而且可以是下列其中一個值。

名稱
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 = 叢集

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';  

另請參閱

分散式查詢預存程式 (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系統預存程序 (Transact-SQL)