sp_indexes (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'