向引用另一个表的列的列添加约束

时间:2011-06-11 12:59:41

标签: sql sql-server sql-server-2005 sql-server-2008

我有一个带有列名ID的table1,我有一个带有列名ID的table2。表1中的Id列是主键,但在第二个表中它不是,但是我想在table1.ID列中添加一个禁令,不接受table2.ID以外的其他值。这可能吗?如果是这样,如何在SQL Server中完成?

4 个答案:

答案 0 :(得分:0)

是的,是...... 你必须建立一对多关系 - FOREIGN KEY约束。

您可以通过制作ALTER语句来完成此操作。如果没有违反约束,可以这样做

答案 1 :(得分:0)

以下是创建外键关系的示例:

create table Table1 (id int primary key)
create table Table2 (id int foreign key references Table1(id))

在数据库设计中,它被称为Table2和Table1之间的“一对多”关系。 Table1中的一行可以与Table2中的许多行相关。 Table1中的一行只能与Table2中的一行相关。

答案 2 :(得分:0)

  

我想为table1.ID添加一个约束   列不接受其他值   那个table2.ID

     

表一中的Id列是主要的   键

如果Table2中的ID列被定义为唯一或者是主键,则只能使用外键约束。

这将有效:

create table Table2 (id int unique)
create table Table1 (id int primary key foreign key references Table2(id))

这也有效:

create table Table2 (id int primary key)
create table Table1 (id int primary key foreign key references Table2(id))

这不起作用:

create table Table2 (id int)
create table Table1 (id int primary key foreign key references Table2(id))

答案 3 :(得分:0)

您将第一个表列“ID”称为第二个表的外键。