有关级联删除的,不知道怎么控制它。

努力偷懒 2005-09-20 09:53:08
我有2个表:主表A(主键为Dan_NO)和外键表B(外键表的主键为DO_ID,而级联的键是Dan_NO),我设置了这两个表的关系为级联删除,这时候我向主表批插入记录的时候,由于设置了级联删除,插入记录的时候就提示错误了,把级联删除去掉以后是没问题的。而我又想在主表删除记录的时候删除外键表中相应的记录,我想可以通过添加/删除“级联删除”来控制,但是,我不知道怎么去添加/删除“级联删除”,还请各位帮帮忙,谢谢!
...全文
129 7 打赏 收藏 举报
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
努力偷懒 2005-09-20
由于我的操作是在一个存储过程中实现的,不知道关不关这个的事:
CREATE PROCEDURE AutoMark AS

begin TRANSACTION
insert into H_dan select * from H_Dan_CT WHERE (DATEDIFF(day, H_Dan_CT.SH_T, GETDATE()) < 34)
if @@rowcount=0
begin
COMMIT TRANSACTION
return
end

if @@error>0
begin
ROLLBACK TRANSACTION
return
end

insert into H_DO select * from H_DO_CT
if @@error>0
begin
ROLLBACK TRANSACTION
return
end

insert into EM_TC_Do select * from H_TC_All_CT
if @@error>0
begin
ROLLBACK TRANSACTION
return
end

delete dan where (DATEDIFF(day, Dan.SH_T, GETDATE()) < 34) and SH=1
COMMIT TRANSACTION
GO
  • 打赏
  • 举报
回复
努力偷懒 2005-09-20
不是,插入记录的原来是在插入第二个表的时候提示的错误,并不是第一个表!
  • 打赏
  • 举报
回复
powerking2 2005-09-20
估计搂主的主外键关系没有搞清楚!1
  • 打赏
  • 举报
回复
努力偷懒 2005-09-20
哦哦!我还有一个表和外键表B有关系的,那就是C表,C表的外键就是B表的主键!
  • 打赏
  • 举报
回复
努力偷懒 2005-09-20
没有!我确实是在主表中添加记录先的!
  • 打赏
  • 举报
回复
yesyesyes 2005-09-20
可能主从弄倒了吧
  • 打赏
  • 举报
回复
vivianfdlpw 2005-09-20
插入记录时,记录中的Dan_NO必须存在于主表中才可以在引用表中插入
删除时,如果设置了级联删除,只需删除主表中的数据,引用表中的记录会自动删除
  • 打赏
  • 举报
回复
相关推荐
发帖
MS-SQL Server
加入

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2005-09-20 09:53
社区公告
暂无公告