sp_indexes (Transact-SQL)

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

主題連結圖示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'
    這是要求之資訊所屬的索引名稱。index 是 sysname,預設值是 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 權限。

範例

下列範例會從 Seattle1 連結伺服器 AdventureWorks 資料庫之 Employees 資料表中,傳回所有索引資訊。

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