sp_primarykeys (Transact-SQL)

适用于:SQL Server

返回指定远程表的主键列,每个键列对应一行。

Transact-SQL 语法约定

语法

  
sp_primarykeys [ @table_server = ] 'table_server'   
     [ , [ @table_name = ] 'table_name' ]   
     [ , [ @table_schema = ] 'table_schema' ]   
     [ , [ @table_catalog = ] 'table_catalog' ]  

参数

[ @table_server = ] 'table_server'_ 要从中返回主键信息的链接服务器的名称。 table_serversysname,无默认值。

[ @table_name = ] 'table_name' 要为其提供主键信息的表的名称。 table_name为 sysname,默认值为 NULL。

[ @table_schema = ] 'table_schema' 表架构。 table_schema为 sysname,默认值为 NULL。 在 SQL Server 环境中,这对应于表所有者。

[ @table_catalog = ] 'table_catalog' 指定 table_name 所在的目录的名称。 在 SQL Server 环境中,这对应于数据库名称。 table_catalogsysname,默认值为 NULL。

返回代码值

结果集

列名称 数据类型 描述
TABLE_CAT sysname 表目录。
TABLE_SCHEM sysname 表架构。
TABLE_NAME sysname 表的名称。
COLUMN_NAME sysname 列的名称。
KEY_标准版Q int 多列主键中列的序列号。
PK_NAME sysname 主键标识符。 如果对数据源不适用,则返回 NULL。

备注

sp_primarykeys是通过查询与 table_server 对应的 OLE DB 访问接口的 IDBSchemaRowset 接口的PRIMARY_KEYS行集来执行的。 table_nametable_schematable_catalog参数将传递给此接口以限制返回的行。

如果指定的链接服务器的 OLE DB 提供程序不支持 IDBSchemaRowset 接口的PRIMARY_KEYS行集,sp_primarykeys将返回空结果集

权限

需要对架构的 SELECT 权限。

示例

以下示例返回 AdventureWorks2022 数据库中 LONDON1 表的 HumanResources.JobCandidate 服务器中的主键列。

EXEC sp_primarykeys @table_server = N'LONDON1',   
   @table_name = N'JobCandidate',  
   @table_catalog = N'AdventureWorks2022',   
   @table_schema = N'HumanResources';  

另请参阅

分布式查询存储过程 (Transact-SQL)
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_foreignkeys (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系统存储过程 (Transact-SQL)