Sql Server级联操作

来源:互联网 发布:淘宝支付宝怎么开通 编辑:程序博客网 时间:2024/05/18 17:02

问题提出:现在我有三张表,学生Student,课程Course,成绩SC

 

1.  学生表Student,主键是学号Sno

2.  课程Course,主码是课程号Cno

3.  成绩SC,主码是Sno和Cno,Sno外键约束是Student的Sno,Cno的外键约束是Cno

 

现在我需要对Student或者Course进行修改或删除,希望在SC表中能保持修改或删除同步,这就需要到级联操作!


 

方法一、SQL Server 2008 中手动设置“级联”

这个方法建议在建表时不要加入任何设置外键的代码,如果主码是两者或以上的就不适合使用


1.  打开“数据库关系图”,若未创建,则创建

2.  选中SC表,右击选中“关系”,展开“INSERT和UPDATE规范”中选择级联

3.  Student表 和 Course 表也要同样的设置

 

 

方法二、建表时使用级联代码添加

 1 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'SC') 2             AND OBJECTPROPERTY(ID, 'IsUserTable') = 1) 3     DROP TABLE SC 4 Go 5 CREATE TABLE SC 6 (    Sno CHAR(10), 7     Cno CHAR(10), 8     Grade SMALLINT CHECK (Grade >= 0 AND Grade <= 100) NOT NULL, 9     10     PRIMARY KEY (Sno, Cno),11     FOREIGN KEY (Sno) REFERENCES Student (Sno)12         ON UPDATE CASCADE13         ON DELETE CASCADE,14     FOREIGN KEY (Cno) REFERENCES Course (Cno)15         ON UPDATE CASCADE16         ON DELETE CASCADE17 );

 

原创粉丝点击