sp_primarykeys (Transact-SQL)

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

适用范围:SQL Server(SQL Server 2008 到当前版本)。

主题链接图标 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_server 的数据类型为 sysname,无默认值。

  • [ @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_catalog 的数据类型为 sysname,默认值为 NULL。

返回代码值

结果集

列名

数据类型

说明

TABLE_CAT

sysname

表目录。

TABLE_SCHEM

sysname

表架构。

TABLE_NAME

sysname

表的名称。

COLUMN_NAME

sysname

列名。

KEY_SEQ

int

多列主键中列的序列号。

PK_NAME

sysname

主键标识符。 如果对数据源不适用,则返回 NULL。

注释

sp_primarykeys 是通过查询 table_server 所对应的 OLE DB 访问接口的 IDBSchemaRowset 接口的 PRIMARY_KEYS 行集来执行的。 table_name、table_schema、table_catalog 和 column 等参数传递到该接口以限制返回的行。

如果指定链接服务器的 OLE DB 访问接口不支持 IDBSchemaRowset 接口的 PRIMARY_KEYS 行集,sp_primarykeys 将返回空结果集。

权限

需要对架构的 SELECT 权限。

示例

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

EXEC sp_primarykeys @table_server = N'LONDON1', 
   @table_name = N'JobCandidate',
   @table_catalog = N'AdventureWorks2012', 
   @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)