A表
=================================
id int 主键自增
Name varchar(10) 联系人姓名
SourceType int 联系人地址来源,1:联系人的地址在B表,2:联系人的地址在C表
AddressID int 联系人地址在B表或C表中的ID,取那个表的由SourceType决定
B表
=================================
id int 主键自增
Address varchar(50) 联系人的地址C表
=================================
id int 主键自增
Address varchar(50) 联系人的地址
以上就是3个表的结构,我想在当A表的某条记录删除之后,对应的C表或者B表的那条记录也随之删除,不要通过触发器,仅仅通过建立主键外键的关系能否达到呢?
=================================
id int 主键自增
Name varchar(10) 联系人姓名
SourceType int 联系人地址来源,1:联系人的地址在B表,2:联系人的地址在C表
AddressID int 联系人地址在B表或C表中的ID,取那个表的由SourceType决定
B表
=================================
id int 主键自增
Address varchar(50) 联系人的地址C表
=================================
id int 主键自增
Address varchar(50) 联系人的地址
以上就是3个表的结构,我想在当A表的某条记录删除之后,对应的C表或者B表的那条记录也随之删除,不要通过触发器,仅仅通过建立主键外键的关系能否达到呢?
解决方案 »
- tempdb读写量太大导致网站瘫痪
- 一个sql查询问题
- 请教一个关于数据库同步的问题
- 关于sqlserver存储过程循环问题
- sql 2008 求pviot高手
- select year(getdate())'-'month(getdate()) 在查询分析器里写报错,请高手指点
- SQL语句问题,详情请进。
- 存储过程,取出一个表的数据。另外一个查询语句频繁去匹配前一个表的id找其他值
- Update NULL
- win98通过ras可以登陆nt4.0,但无法连接sql7.0。以前一直正常,重装系统后,出现这种情况。本地连接正常,nt通过ras也正常。我不得其解。
- 求一个高难度财务方面的SQL或存储过程
- 如何使一个表根据另外一个表获得数据,小弟我没分啊,请高手帮帮忙!
[ ON DELETE { CASCADE | NO ACTION } ]
[ ON UPDATE { CASCADE | NO ACTION } ]
[ NOT FOR REPLICATION ]
| CHECK [ NOT FOR REPLICATION ]
( search_conditions )
} 参数
指定对应关系表的SourceType这个字段不会再关系中得到体现,所以是不可以的、有疑问:为什么联系人地址会放在2张表中?如果实际情况已经如此,就只能在数据逻辑上做处理,如触发器中去实现