sp_foreignkeys (Transact-SQL)
适用于:SQL Server
返回引用链接服务器中的表的主键的外键。
语法
sp_foreignkeys [ @table_server = ] 'table_server'
[ , [ @pktab_name = ] 'pktab_name' ]
[ , [ @pktab_schema = ] 'pktab_schema' ]
[ , [ @pktab_catalog = ] 'pktab_catalog' ]
[ , [ @fktab_name = ] 'fktab_name' ]
[ , [ @fktab_schema = ] 'fktab_schema' ]
[ , [ @fktab_catalog = ] 'fktab_catalog' ]
参数
[ @table_server = ] 'table_server'
要为其返回表信息的链接服务器的名称。 table_server 为 sysname,无默认值。
[ @pktab_name = ] 'pktab_name'
具有主键的表的名称。 pktab_name为 sysname,默认值为 NULL。
[ @pktab_schema = ] 'pktab_schema'
具有主键的架构的名称。 pktab_schema为 sysname,默认值为 NULL。 在 SQL Server 中,它包含所有者名称。
[ @pktab_catalog = ] 'pktab_catalog'
包含主键的目录的名称。 pktab_catalog为 sysname,默认值为 NULL。 在 SQL Server 中,它包含数据库名称。
[ @fktab_name = ] 'fktab_name'
具有外键的表的名称。 fktab_name为 sysname,默认值为 NULL。
[ @fktab_schema = ] 'fktab_schema'
具有外键的架构的名称。 fktab_schema为 sysname,默认值为 NULL。
[ @fktab_catalog = ] 'fktab_catalog'
具有外键的目录的名称。 fktab_catalog为 sysname,默认值为 NULL。
返回代码值
无
结果集
各种 DBMS 产品支持表的三部分命名(目录)。schema。表),结果集中表示。
列名称 | 数据类型 | 描述 |
---|---|---|
PKTABLE_CAT | sysname | 主键所在表的目录。 |
PKTABLE_SCHEM | sysname | 主键所在表的架构。 |
PKTABLE_NAME | sysname | 表(带主键)的名称。 此字段始终返回值。 |
PKCOLUMN_NAME | sysname | 返回TABLE_NAME的每一列的主键列或列的名称。 此字段始终返回值。 |
FKTABLE_CAT | sysname | 外键所在表的目录。 |
FKTABLE_SCHEM | sysname | 外键所在表的架构。 |
FKTABLE_NAME | sysname | 表(带外键)的名称。 此字段始终返回值。 |
FKCOLUMN_NAME | sysname | 返回TABLE_NAME的每一列的外键列的名称。 此字段始终返回值。 |
KEY_SEQ | smallint | 多列主键中列的序列号。 此字段始终返回值。 |
UPDATE_RULE | smallint | 当 SQL 操作是更新操作时应用于外键的操作。 对于以下列,SQL Server 返回 0、1 或 2: 0=对外键的 CASCADE 更改。 1=NO ACTION 更改(如果有外键)。 2=SET_NULL;将外键设置为 NULL。 |
DELETE_RULE | smallint | 当 SQL 操作是删除操作时应用于外键的操作。 对于以下列,SQL Server 返回 0、1 或 2: 0=对外键的 CASCADE 更改。 1=NO ACTION 更改(如果有外键)。 2=SET_NULL;将外键设置为 NULL。 |
FK_NAME | sysname | 外键标识符。 如果不适用于数据源,则为 NULL。 SQL Server 将返回 FOREIGN KEY 约束名称。 |
PK_NAME | sysname | 主键标识符。 如果不适用于数据源,则为 NULL。 SQL Server 将返回 PRIMARY KEY 约束名称。 |
DEFERRABILITY | smallint | 指示是否可延迟约束检查。 |
在结果集中,FK_NAME 和 PK_NAME 列总是返回 NULL。
注解
sp_foreignkeys查询与table_server对应的 OLE DB 访问接口的 IDBSchemaRowset 接口的FOREIGN_KEYS行集。 table_name、table_schema、table_catalog 和列参数将传递给此接口以限制返回的行。
权限
需要对架构的 SELECT 权限。
示例
下面的示例返回有关链接服务器 Department
上 AdventureWorks2022
数据库中的 Seattle1
表中的外键的信息。
EXEC sp_foreignkeys @table_server = N'Seattle1',
@pktab_name = N'Department',
@pktab_catalog = N'AdventureWorks2022';
另请参阅
sp_catalogs (Transact-SQL)
sp_column_privileges (Transact-SQL)
sp_indexes (Transact-SQL)
sp_linkedservers (Transact-SQL)
sp_primarykeys (Transact-SQL)
sp_tables_ex (Transact-SQL)
sp_table_privileges (Transact-SQL)
系统存储过程 (Transact-SQL)
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈