sp_primarykeys (Transact-SQL)
适用于:SQL Server
返回指定远程表的主键列,每个键列对应一行。
语法
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和列参数将传递到此接口以限制返回的行。
如果指定链接服务器的 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)
反馈
提交和查看相关反馈