sp_primarykeys (Transact-SQL)

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

主题链接图标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 2005 环境中,该值对应于表所有者。

[ @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_nametable_schematable_catalogcolumn 等参数传递到该接口以限制返回的行。

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

权限

需要对架构的 SELECT 权限。

示例

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

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

帮助和信息

获取 SQL Server 2005 帮助