最近在做多线程处理sql server2008某个表中的数据时,在Update记录的时候出现了【Transaction (Process ID 146) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction】显示的错误,百思不得其解,还以为是程序中应用了lock的原因导致死锁呢,后来发现不是这么回事,是我处理的表没有设置主键,而更新时是根据主键进行更新的。
又仔细一想,是因为我更新的这个表是通过sql server2008自带的导入表的功能倒过来了,原来的表是有主键的,但是通过导入方式过来的新表确实没有主键的,这个问题不太清楚,如果提前知道,设置好主键就不会出现这样的问题了。
在使用多线程处理SQL Server 2008表数据时,遇到Update操作导致的死锁错误。原因是更新表未设置主键,且该表为通过内置导入功能生成,导入后丢失了原有的主键信息。通过设置主键解决了此问题。
9748

被折叠的 条评论
为什么被折叠?



