在SQL Server 2008中的级联删除效果案例

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 11:02 点击:

通常在项目中经常使用到这种知识点,今天举个案例加深印象!

首先如下:几个测试数据库其中包含两个表代码如下
view plain
<span style="font-family:'Microsoft YaHei';font-size:16px;">CREATE DATABASE test 
 
CREATE TABLE student 

    id      int primary key identity(200901,1),--学号 
    sName   varchar(100),--学生姓名 
    dId     int --系编号 

 
--院系 
CREATE TABLE dep 

    dId     int primary key identity(1,1), 
    dName   varchar(100) 

GO</span> 
这两个表非常简单,一个是学生表,一个是院系表,学生和院系是n:1的关系,学生表中的dId引用院系表中的dId,来建立两个表之间的关系!
添加两个表的关系约束的时候注意添加“ ON DELETE  CASCADE”
view plain
<span style="font-family:'Microsoft YaHei';font-size:18px;">ALTER TABLE student 
ADD CONSTRAINT FK_sd 
FOREIGN KEY(dId) REFERENCES dep(dId)  
ON DELETE CASCADE</span> 

下面向上述表中添加测试数据:
view plain
<span style="font-family:'Microsoft YaHei';font-size:18px;">--添加院系 
INSERT INTO dep(dName) VALUES('计算机学院') 
INSERT INTO dep(dName) VALUES('外国语学院') 
INSERT INTO dep(dName) VALUES('体育学院') 
 
--添加计算机学院学生 
INSERT INTO student(sName,dId) VALUES('卢俊义',1) 
INSERT INTO student(sName,dId) VALUES('宋江',1) 
INSERT INTO student(sName,dId) VALUES('林冲',1) 
INSERT INTO student(sName,dId) VALUES('关胜',1) 
INSERT INTO student(sName,dId) VALUES('呼延灼',1) 
 
--添加外语学院的学生 
INSERT INTO student(sName,dId) VALUES('华容',2) 
INSERT INTO student(sName,dId) VALUES('燕青',2) 
INSERT INTO student(sName,dId) VALUES('孙二娘',2) 
 
--添加体育学院的学生 
INSERT INTO student(sName,dId) VALUES('菜园子',3) 
INSERT INTO student(sName,dId) VALUES('扈三娘',3) 
INSERT INTO student(sName,dId) VALUES('阮小气',3) 
 
SELECT * FROM dep 
SELECT * FROM student 
GO</span> 
测试数据插入成功后,下面测试能否进行级联删除呢?
view plain
<span style="font-family:'Microsoft YaHei';font-size:18px;">--删除计算机学院的学生 
DELETE FROM dep WHERE dId='1'</span> 

上面语句执行后查询两个表中的数据发现计算机学院的所有学生全部被删除了!
任务完成,呵呵!!!

作者“proWang 任何...都不能撼动我的理想...”

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1