Transact-SQL 参考

sp_primarykeys

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

语法

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。在 Microsoft® SQL Server™ 环境中,这相当于表的所有者。

[@table_catalog =] 'table_catalog'

是指定的 table_name 所在的目录名。在 Microsoft SQL Server 环境中,这相当于数据库名称。table_catalogsysname 类型,其默认值为 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 将返回空结果集。

权限

执行权限默认授予 public 角色。

示例

下面的示例返回服务器 LONDON1 上数据库 Northwind 中表 Customers 的主键列。

USE master
EXEC sp_primarykeys @table_server = N'LONDON1', 
   @table_name = N'Customers',
   @table_catalog = N'Northwind',
   @table_schema = N'dbo'

请参见

sp_catalogs

sp_column_privileges

sp_foreignkeys

sp_indexes

sp_linkedservers

sp_tables_ex

sp_table_privileges

系统存储过程