SQL Server 2005中如何创建和删除外键
最近了解到数据库中创建外键的方法,便记录下来,以防忘记。在SQL Server 2005中,为了保证数据库的完整性,创建外键是我们经常用到的。创建外键有两种直接的方法。一种是通过写代码创建外键,一种是通过新建数据库关系图(不用写代码)创建外键。在建表前考虑清楚了并在建表的时候就创建外键当然很好,然而,手动建表且没有创建外键,但在后面需要创建外键时怎么办呢?
在创建外键之前需建立表,例如:学生——选课表
//学生表
Create Table Student
(
Sno CHAR(10) primary key,
Sname CHAR(10) not null,
Ssex CHAR(2),
Sage INT,
Sdept Varchar(10)
)
//课程表
Create Table Course
(
Cno CHAR(4) primary key,
CName CHAR(20) not null,
Cpno CHAR(4) ,
Ccredit INT
)
//选课表
Create TABLE SC
(
Sno CHAR(10) not null,
Cno CHAR(4) not null,
Grade INT,
Primary key(Sno,Cno),
Foreign key (Sno) references Student(Sno),
Foreign key (Cno) references Course(Cno)
)
注:当然也可以手动的创建表。以上代码中已经在定义表是创建外键。如果创建表时没有创建外键,则:、
(1) 运用编写代码增加外键
alter table SC
add constraint SMPKey(外键名) foreign key(Sno) references student(Sno),
add constraint CMPKey(外键名) foreign key(Cno) references Course(Cno)
(2) 新建数据库关系图增加外键
展开所建数据库,找到数据库关系图,右键——>新建数据库关系图,在弹出的对话
框(如图1.1)中添加与要增加外键的表以及包含外键的表(如图1.2),单击“添加”,然后关闭该对话框。得到图1.3,选择基表中创建外键的字段,指向另一个表中对应的字段,出现如图1.4所示的两个的对话框,单击“确定”,并展开“外键关系”对话框中“数据库设计器”下的“INSERT和UPDATE规范”,如图1.5。将更新规则后的“无操作”改为“层叠”,同理,将“删除规则”后的“无操作”改为“层叠”(如图1.6),单击“确定”。这样,基表与另一张表的外键关系就建立好了。同理操作其他表,操作完成后保存该数据关系图即可。此处得到的数据库关系图如图1.7。
图1.1 图1.2
图1.3
图1.4
图1.5
图1.6
图1.7
注:建立外键时,两张表中要创建外键关系的字段的数据类型、长度以及是否可以为空必须一致,否则不能创建成功。
删除外键:
展开所建表中的键,找到想删除的外键,单击右键,选择“删除”,在弹出的对话框中点击“确定”即可。