问题提出:现在我有三张表,学生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 表也要同样的设置

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

 IF EXISTS (SELECT * FROM dbo.sysobjects WHERE ID = OBJECT_ID(N'SC') 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
);

最新文章

  1. (转帖)开源容器集群管理系统Kubernetes架构及组件介绍
  2. 二模14day2解题报告
  3. PHP基础Mysql扩展库
  4. VAssistX的VA Snippet Editor的类注释和函数注释
  5. 导入maven项目后无法找到sun tools toos-15.0.jar
  6. DevExpress控件开发常用要点(项目总结版)
  7. Java 7 中 NIO.2 的使用——文件递归操作
  8. (原+转)ubuntu14中结束多个caffe进程中的某个
  9. qt 4.6.2 vs 2005 + QCreator 开发环境配置(有注册码)
  10. sublime text 3双击选择无法选择$符号
  11. Zepto源码分析之一(代码结构及初始化)
  12. Java实训作业1
  13. mui组件 输入表单 快捷键mf
  14. css效果文字多了就...
  15. Spring使用笔记(一)Spring简介
  16. 【JVM】-NO.113.JVM.1 -【JDK11 HashMap详解-0-全局-put】
  17. 【读书笔记】iOS-storyboard-两个场景间的切换(二)
  18. 【原创】ABP之IConventionalDependencyRegistra接口分析
  19. 第一次登录mysql,使用任何命令都报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
  20. NumPy 字节交换

热门文章

  1. 浅入深出Vue:路由
  2. HttpUtility.UrlEncode讲解
  3. Docker环境下的前后端分离项目部署与运维(十二)使用Portainer管理Docker
  4. cookie 和 session 设置
  5. php接口数据安全解决方案(二)
  6. Docker笔记(四):Docker镜像管理
  7. 通讯(tarjan缩点)(20190716NOIP模拟测试4)
  8. Python 含小数的十、二进制相互转换
  9. Hadoop现在怎么样了?
  10. C# ExcelAddIn 开发笔记