我有一个存储过程被调用来填充一张表,只要我们收到传入的文件。 有时我们会收到多个文件,同时会调用该过程。 在过程中,语句很简单,如下所示:解决死锁
IF NOT EXISTS (SELECT.... WHERE A=1 B=2)
INSERT ...
ELSE
UPDATE ...
WHERE A=1 and B=2
END
这样做,我开始一个重复的记录错误。我假设2条记录试图登录到INSERT
。为了避免这种情况,我将这些语句放在SERIALIZABLE ISOLATION LEVEL
的Transaction中。
事情变得更糟,我开始陷入僵局错误!
有什么问题我在这里做?
我试过Read Committed,我想这是默认级别。但我仍然有重复记录错误。 – wixuser1105 2009-11-09 07:23:22
给读取未提交一个去。尽管在Andrew的答案中做出修改,一定会将你的问题排除在外。 – 2009-11-09 22:26:24