读书人

数据库并发有关问题

发布时间: 2012-05-12 15:39:31 作者: rapoo

数据库并发问题
背景:
调用第三方函数向数据库插入一条记录。然后用SQL更新这条记录。
语言:
C# VS2008


问题:

用SQL去更新,刚才第三方函数创建出来的记录。发现受影响的记录为0。发现更新的时候记录还没有创建出来。

1.调用第三方函数,需要过一段时间,新记录才在数据库中创建出来。
2.第三方函数,调用成功了就返回了,并没有在数据库中数据创建完时返回。
3.只能通过第三方函数创建数据。

求大神有啥好的方法,暂时想到的只有定时查询数据库是否有数据创建出来有的话更新。但是如此会牺牲性能。


[解决办法]
用触发器,

SQL code
create trigger tr_tab on tabafter insertasbegin  update a  set [...]  from tab a  inner join inserted b  on a.[主键]=b.[主键]end
[解决办法]
1、是再创建以后就更新么? 既然这样,为什么不在第三方函数把更新后的数据一起创建好,然后插入到数据库,这样就不存在还要判断的问题。
2、如果不能修改第三方函数的话,那么如果还是在数据插入以后就更新,那么可以考虑使用触发器;
[解决办法]
支持2楼的看法
[解决办法]
插入成功返回什么?可以先判断返回标记,如果表示成功再用sql修改记录。

读书人网 >SQL Server

热点推荐