sp_primarykeys (Transact-SQL)
适用范围:SQL Server
返回指定远程表的主键列,每个键列对应一行。
语法
sp_primarykeys
[ @table_server = ] N'table_server'
[ , [ @table_name = ] N'table_name' ]
[ , [ @table_schema = ] N'table_schema' ]
[ , [ @table_catalog = ] N'table_catalog' ]
[ ; ]
参数
[ @table_server = ] N'table_server'
要从中返回主键信息的链接服务器的名称。 @table_server为 sysname,没有默认值。
[ @table_name = ] N'table_name'
要为其提供主键信息的表的名称。 @table_name为 sysname,默认值为 NULL
.
[ @table_schema = ] N'table_schema'
表架构。 @table_schema为 sysname,默认值为 NULL
. 在 SQL Server 环境中,此值对应于表所有者。
[ @table_catalog = ] N'table_catalog'
指定 @table_name 所在的目录的名称。 @table_catalog为 sysname,默认值为 NULL
. 在 SQL Server 环境中,此值对应于数据库名称。
返回代码值
无。
结果集
列名称 | 数据类型 | 描述 |
---|---|---|
TABLE_CAT |
sysname | 表目录。 |
TABLE_SCHEM |
sysname | 表架构。 |
TABLE_NAME |
sysname | 表的名称。 |
COLUMN_NAME |
sysname | 列的名称。 |
KEY_SEQ |
int | 多列主键中列的序列号。 |
PK_NAME |
sysname | 主键标识符。 如果不适用于数据源,则 NULL 返回。 |
注解
sp_primarykeys
通过查询PRIMARY_KEYS
对应于@table_server的 OLE DB 访问接口的IDBSchemaRowset
接口的行集来执行。 参数将传递给此接口以限制返回的行。
sp_primarykeys
如果指定的链接服务器的 OLE DB 提供程序不支持 PRIMARY_KEYS
接口的行集,则返回空结果集 IDBSchemaRowset
。
权限
需要对架构的 SELECT
权限。
示例
以下示例返回 AdventureWorks2022
数据库中 LONDON1
表的 HumanResources.JobCandidate
服务器中的主键列。
EXEC sp_primarykeys @table_server = N'LONDON1',
@table_name = N'JobCandidate',
@table_catalog = N'AdventureWorks2022',
@table_schema = N'HumanResources';