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

sp_commonkey

语法


sp_commonkey <tabaname>, <tabbname>, <col1a>, <col1b> 
	[, <col2a>, <col2b>, ..., <col8a>, <col8b>]

参数

<tabaname>

是要连接的第一个表或视图的名称。

<tabbname>

是要连接的第二个表或视图的名称。

<col1a>

是在表或视图 中构成公用键的第一个列的名称。至少应该指定一个列对(第一个表或视图中的一个列和第二个表或视图中的一个列)。

<col1b>

是表或视图 中与表或视图 中的 连接的对应列的名称。

示例

示例 1

定义 titles.titleid 和 titleauthor.titleid 的公用键:


sp_commonkey titles, titleauthor, title_id, title_id

示例 2

假定有两个表 projects 和 departments,每个表都包含名为 empid 的列。此语句在这两个列上定义常用连接:


sp_commonkey projects, departments, empid, empid

用法

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

  • 创建公用键的目的是为了使数据库设计中的隐式逻辑关系变为显式关系。此信息可供应用程序使用。sp_commonkey 不强制执行参照完整性约束;使用 create table 或 alter table 命令的 primary key 和 foreign key 子句来强制执行键关系。

  • 执行 sp_commonkey 会将键添加到 syskeys 系统表中。若要显示已定义的公用键的报告,请使用 sp_helpkey。

  • 若要定义两个表或视图之间的公用键,您必须是其中至少一个的所有者。

  • 第一个表或视图中的列数必须与第二个表或视图中的列数相同。在每个表或视图中,最多可以有 8 列参与公用键。公用列的数据类型也必须一致。对于可指定长度的列,长度可以不同。公用列的空值类型无需一致。

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

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