SQLServer中 事务和外键约束的冲突,困惑

lanr8847 2008-12-12 09:30:09
请教
ADO.NET
表A是主键表,表B是外键表
我设想是在一个事务中完成向A添加一项,
再循环向B添加N项(外键是A所添加项),提交事务

但因为事务提交前没有真正写入源数据库,故向B表添加项时总异常:表A中无此主键,违反外键约束

请问大家,有什么办法既保持了外键关系,又可以在B表添加失败的情况下实现A表的回滚
...全文
379 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lanr8847 2008-12-12
  • 打赏
  • 举报
回复
晕,问题出来了,我把当前时间也作为键了,Debug时间太长,
怪不得运行不错,调试就出问题,果然应该先定义一个时间变量

找出个Bug,结贴
wuyq11 2008-12-12
  • 打赏
  • 举报
回复
在存储过程中提交事务,先插入数据到A再取出外键插入数据到B
lanr8847 2008-12-12
  • 打赏
  • 举报
回复
补充,应该说是添加记录,B中所添加记录的外键和A中所加记录的主键关联

我发现在同一命令对象中没有异常,
但若在同一事务中,两者(向A添加记录 和 向B添加记录)由不同命令对象执行,就会冲突

烦恼中...
koukoujiayi 2008-12-12
  • 打赏
  • 举报
回复
向A表添加一项,再向B表添加N项,有外键约束,事务处理应该是没问题的,可能楼主代码有问题!!
至于回滚,不用操心,事务处理遇到任何错误,都回自动回滚到事务处理前的状态!!

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧