返回指定远程表的主键列,每个键列占一行。
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_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 将返回空结果集。
执行权限默认授予 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'