首页 > 数据库技术 > 详细

sql server 2008 外键的级联操作

时间:2014-03-28 23:59:47      阅读:633      评论:0      收藏:0      [点我收藏+]

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

 

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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

bubuko.com,布布扣

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


 

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

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


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

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

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

 

bubuko.com,布布扣

 

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

bubuko.com,布布扣
 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(NSC) AND OBJECTPROPERTY(ID, IsUserTable) = 1)
   DROP TABLE SC
 Go
 CREATE TABLE SC
  (    Sno CHAR(10),
       Cno CHAR(10),
       Grade SMALLINT CHECK (Grade >= 0 AND Grade <= 100) NOT NULL,
      
      PRIMARY KEY (Sno, Cno),
      FOREIGN KEY (Sno) REFERENCES Student (Sno)
          ON UPDATE CASCADE
          ON DELETE CASCADE,
      FOREIGN KEY (Cno) REFERENCES Course (Cno)
         ON UPDATE CASCADE
         ON DELETE CASCADE
 );
bubuko.com,布布扣

sql server 2008 外键的级联操作,布布扣,bubuko.com

sql server 2008 外键的级联操作

原文:http://www.cnblogs.com/sandyflower/p/3630613.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!