日期:2014-05-17  浏览次数:20448 次

SQL2005更新遇到冲突问题
程序里面有几个定时执行更新操作的,只是间隔时间不同而已,

就是如果时间刚好同时执行的话,那么数据库就要发生冲突了,更新的是同一条数据,比如同一个用户。

如何解决

提示,哪个进程ID和哪个进程ID发生死锁。。。。。郁闷中


急,哪位大虾救救小弟,万分感谢!!!!

------解决方案--------------------
当事务读取一条记录,而该记录是另一尚未完成的事务一部分时,就会发生脏读。如果第一个事务正常完成,那么这样做似乎不会出现问题。但是如果这个事务被回滚情况又会怎样呢?你会从事务中得到消息,从数据库的角度来说,并不存在这样的信息!
事务2现在正在使用一个已经失效的值,如果试图返回审核,会发现根本无法追踪要该数字的来源,这件事情很令人头疼。幸运的是,如果使用SQL Server默认的事务隔离级别,就不会发生这样的事情。

------解决方案--------------------
就是如果时间刚好同时执行的话,那么数据库就要发生冲突了,更新的是同一条数据,比如同一个用户。

如何解决

--》》如果多用户同时更新同一个数据,那么会发生阻塞,数据库会自动枷锁。
解决方法:
1、提高语句的执行效率,不要让一个语句占用对象时间太长导致其他语句被阻塞 (推荐)
2、设置数据库的事务隔离级别(不推荐 ,可能会导致一些脏数据)