zoukankan      html  css  js  c++  java
  • sql server 2008 外键的级联操作

    问题提出:现在我有三张表,学生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
     );
  • 相关阅读:
    电梯调度之调研报告
    小作业之测试篇
    求固定数组的最大子数组
    四则运算之C++实现篇
    四则运算2之设计思路篇
    轻松记账工程冲刺第十天
    轻松记账工程冲刺第九天
    轻松记账工程冲刺第八天
    简评QQ拼音输入法
    轻松记账工程冲刺第七天
  • 原文地址:https://www.cnblogs.com/sandyflower/p/3630613.html
Copyright © 2011-2022 走看看