CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

如何禁止这样的删除(高分求解)

楼主happyguy2008()2004-12-03 22:36:13 在 MS-SQL Server / 应用实例 提问

表A结构:  
  规格书ID(主键)  
  规格书名称  
   
  表B结构:  
  版本ID(主键)  
  版本名称  
  规格书ID    
   
  表A和表B没有建立外键关系,但实际上表B的规格书ID来自表A规格书ID,  
  表B中规格书ID可重复  
   
  现在的问题是:当用户删除表A中的一条记录时,如果表B中已经存在表A中该规格书ID的一条或多条记录,应该提示用户不能删除已经相应版本记录的规格书  
  请问各位如何实现 问题点数:100、回复次数:6Top

1 楼631799(杭州工人)回复于 2004-12-03 22:46:47 得分 20

用主键,和外键完成最好.Top

2 楼lsxaa(小李铅笔刀)回复于 2004-12-03 22:53:11 得分 10

在A建删除触发器,进行判断,B如果有     rollback   tranTop

3 楼kingfung(军哥)回复于 2004-12-03 23:00:04 得分 10

其实你在代码里限制不更好吗?Top

4 楼hdhai9451(☆新人类☆)回复于 2004-12-03 23:32:05 得分 10

//当用户删除表A中的一条记录时,如果表B中已经存在表A中该规格书ID的一条或多条记录,应该提示用户不能删除已经相应版本记录的规格书  
   
  應該是刪除不了的,因為它受到外鍵約束,刪除時它會提示錯誤Top

5 楼hdhai9451(☆新人类☆)回复于 2004-12-03 23:40:15 得分 50

 
  create   table   ta(規格書ID   varchar(10),規格書名稱     varchar(50),primary   key(規格書ID))  
  insert   into   ta  
  select   'A1','MFC/VC'  
  union   all   select   'A2','sql   server2000'  
  union   all   select   'A3','windows   2000'  
   
  create   table   tb(版本ID   varchar(30),版本名稱   varchar(50),規格書ID   varchar(10),  
  constraint   FK_ta_規格書ID   foreign   key(規格書ID)   references   ta(規格書ID),  
  primary   key   (版本ID))  
   
  insert   into   tb   select   'B1','windows   xp','A1'     ----->這條記錄插入成功  
   
  insert   into   tb   select   'B1','windows   xp','A5'   ---->這條記錄插入失敗,因為"規格書ID"已經受到約束  
  受到約束,插入不成功  
   
  --測試刪除  
  delete   from   ta   where   規格書ID='A1'         ----->這句話也操作失敗,也是因為受到約束,tb中存在'A1'  
  受到約束,結果刪除不成功  
   
   
  --刪除表  
  drop   table   ta  
  drop   table   tb  
   
   
  從上面可以看出,你刪除A表中的"規格書ID"在B表中已經存在的內容  
  Top

6 楼hdhai9451(☆新人类☆)回复于 2004-12-03 23:41:00 得分 0

用這麼多數據測試,不知道樓主清楚了沒有?Top

相关问题

  • 50分求解一个简单的删除数据问题
  • 100分求解!如何在pb中删除数据库。
  • 删除某两列中重复的记录 (百分求解)
  • 新手求解。删除后的图片然后刷新?有分散!!!!
  • 添加删除程序面板打不开,来看一下!高分求解!
  • 高分求解!
  • !!!高分求解!!!
  • 高分求解???
  • 101分求解
  • ~~~~~~~~~~高分求解~~~~~~~~~~~

关键词

  • 版本
  • 用户
  • 删除
  • 规格书
  • 規格書
  • 记录
  • 键
  • 提示
  • ta
  • 表

得分解答快速导航

  • 帖主:happyguy2008
  • 631799
  • lsxaa
  • kingfung
  • hdhai9451
  • hdhai9451

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo