首页 新闻 会员 周边

C# 触发器和事务先后数据获取问题

0
悬赏园豆:15 [待解决问题]

C# 端

事务处理开始

  插入主表A(Id) -- 一条主表数据

  插入子表B(AId,Id) --大于10条数据

事务处理结束

 

SQL 触发器

在A上建立触发器,如根据A的Id 获取B关联AId的数据,此时发现一个问题,当触发器执行时,无法获取子表数据 即 

Create trigger tr_A_insert

for insert 

as 

 

select @AId = Id from Inserted;--A表新增的数据

select count(1) from B where AId=@AId --统计数据,由于先后问题此时获取不到插入的B数据

.....

约束:不能修改C#程序

由于一次插入B的数据很多,因此没有将触发器建立在B上

liusaup的主页 liusaup | 初学一级 | 园豆:10
提问于:2014-06-24 11:37
< >
分享
所有回答(3)
0

如果你的目的是为了保证数据插入的准确性,根据你的情况分析,不是触发器可以解决的.

我的思路是这样:

1 A表增加验证字段,默认是为未验证

2 增加一个定时任务,验证过的数据将A表验证字段重置为已验证

飞来飞去 | 园豆:2057 (老鸟四级) | 2014-06-24 13:27
0

你直接用事务操作吧。触发器的执行时间实在是做不到你的需求。

幻天芒 | 园豆:37175 (高人七级) | 2014-06-24 13:37
0

建议少用触发器,这个东西并不是安全的,尤其在I/O 吞吐量大的时候 可以直接让你的数据服务器挂掉!

Sake.Z.L.B | 园豆:262 (菜鸟二级) | 2014-06-24 21:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册