sp_indexes (Transact-SQL)
適用於:SQL Server
傳回指定遠端數據表的索引資訊。
語法
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 = Clustered2 = 哈希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';