苏飞论坛

标题: SqlServer死锁问题,求解决方案。 [打印本页]

作者: 小飞牛    时间: 2014-8-19 16:50
标题: SqlServer死锁问题,求解决方案。
运行多个窗体程序,同时像一个表中插入数据【A表】。导致如下错误:

事务(进程 ID 74)与另一个进程被死锁在 锁 | 通信缓冲区 资源上,并且已被选作死锁牺牲品。请重新运行该事务。


求一个完整的解决方案,给点提示也好。

作者: 站长苏飞    时间: 2014-8-19 17:59
这种情况一般 是代码问题,或者是写的SQl语句不合理造成的。 几个小程序还不会把Sql写到有限制
作者: 水手    时间: 2014-8-19 21:31
修改数据的时候,要加锁。不能同时修改一张表~~
作者: xfqsean    时间: 2014-8-20 10:45
将像数据库表中插入数据的操作代码加锁锁起来,这样每一次插入操作完成后,才允许再次执行插入操作,否则,需要等待插入操作完成。这样就不会出现死锁了
作者: 小飞牛    时间: 2014-8-20 16:32
xfqsean 发表于 2014-8-20 10:45
将像数据库表中插入数据的操作代码加锁锁起来,这样每一次插入操作完成后,才允许再次执行插入操作,否则, ...

如果是一个程序,可以这样。
但是我是几个程序,同时运行。
像同个数据库,同个表插入数据。
这个怎么控制呢?
作者: xfqsean    时间: 2014-8-23 10:07
小飞牛 发表于 2014-8-20 16:32
如果是一个程序,可以这样。
但是我是几个程序,同时运行。
像同个数据库,同个表插入数据。

那就将各个程序中入库的那句代码加锁呗




欢迎光临 苏飞论坛 (http://www.sufeinet.com/) Powered by Discuz! X3.4