返回當(dāng)前環(huán)境中單個(gè)表的主鍵信息。
sp_pkeys [ @table_name = ] 'name'
[ , [ @table_owner = ] 'owner' ]
[ , [ @table_qualifier = ] 'qualifier' ]
[@table_name =] 'name'
是要返回其信息的表。name 為 sysname 類型,無(wú)默認(rèn)值。不支持通配符模式匹配。
[@table_owner =] 'owner'
表示指定表的所有者。owner 為 sysname 類型,其默認(rèn)值為 NULL。不支持通配符模式匹配。如果未指定 owner,則應(yīng)用基礎(chǔ) DBMS 的默認(rèn)表可視性規(guī)則。
在 Microsoft® SQL Server™ 中,如果當(dāng)前用戶擁有的表具有指定名稱,則返回該表的列。如果未指定 owner,且當(dāng)前用戶未擁有指定 name 的表,則該過(guò)程查找由數(shù)據(jù)庫(kù)所有者擁有的具有指定 name 的表。如果有,則返回該表的列。
[@table_qualifier =] 'qualifier'
是表限定符。qualifier 為 sysname 類型,其默認(rèn)值為 NULL。多種 DBMS 產(chǎn)品支持表的三部分命名方式 (qualifier.owner.name)。在 SQL Server 中,該列表示數(shù)據(jù)庫(kù)名。在某些產(chǎn)品中,該列表示表所在數(shù)據(jù)庫(kù)環(huán)境的服務(wù)器名。
無(wú)
列名 | 數(shù)據(jù)類型 | 描述 |
---|---|---|
TABLE_QUALIFIER | sysname | 表限定符的名稱。該字段可以為 NULL。 |
TABLE_OWNER | sysname | 表所有者的名稱。該字段始終返回值。 |
TABLE_NAME | sysname | 表的名稱。在 SQL Server 中,此列表示在 sysobjects 表中的列出的表名。該字段始終返回值。 |
COLUMN_NAME | sysname | 是所返回的 TABLE_NAME 中每一列的列名。在 SQL Server 中,此列表示在 syscolumns 表中列出的列名。該字段始終返回值。 |
KEY_SEQ | smallint | 多列主鍵中列的序列號(hào)。 |
PK_NAME | sysname | 主鍵標(biāo)識(shí)符。如果對(duì)數(shù)據(jù)源不適用,則返回 NULL。 |
sp_pkeys 返回顯式定義了 PRIMARY KEY 約束的列的信息。由于不是所有的系統(tǒng)均支持顯式命名的主鍵,因此由網(wǎng)關(guān)實(shí)現(xiàn)者決定主鍵的構(gòu)成。要注意主鍵這一術(shù)語(yǔ)指的是表的邏輯主鍵。應(yīng)在被列為邏輯主鍵的每個(gè)鍵上定義一個(gè)唯一索引。此唯一索引也會(huì)由 sp_statistics 返回。
存儲(chǔ)過(guò)程 sp_pkeys 與 ODBC 中的 SQLPrimaryKeys 等價(jià)。返回的結(jié)果按 TABLE_QUALIFIER、TABLE_OWNER、TABLE_NAME 和 KEY_SEQ 排序。
執(zhí)行權(quán)限默認(rèn)授予 public 角色。