您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_foreignkey

语法


sp_foreignkey <tabname>, <pktabname>, <col1>[, <col2>] ... 
	[, <col8>]

参数

<tabname>

是包含要定义的外键的表或视图的名称。

<pktabname>

是具有外键所适用的主键的表或视图的名称。主键必须已经定义。

<col1>

是构成外键的第一个列的名称。外键必须至少有一个列,最多可以有八列。

示例

示例 1

publishers 表的主键是 pub_id 列。titles 表也包含 pub_id 列,该列是 publishers 的外键:


sp_foreignkey titles, publishers, pub_id

示例 2

已通过 sp_primarykey 将 parts 表的主键定义为 partnumber 和 subpartnumber 列。orders 表包含 part 和 subpart 列,这两列构成 parts 的外键:


sp_foreignkey orders, parts, part, subpart

用法

使用 sp_foreignkey 时,还存在一些其它注意事项:

  • sp_foreignkey 会向 syskeys 表添加键。键使数据库设计中的隐式逻辑关系变为显式的。

  • sp_foreignkey 不强制参照完整性约束;使用 create table 或 alter table 命令的 foreign key 子句可以强制外键关系。

  • 构成外键的列的编号和顺序必须与构成主键的列的编号和顺序相同。主键和外键的数据类型(和长度)必须一致,但空值类型不必一致。

  • 安装进程对系统表的相应列运行 sp_foreignkey。

  • 若要显示有关已定义键的报告,请执行 sp_helpkey。

  • 不能将 Java 数据类型用于 sp_foreignkey。