我在SQL Server 2008R2中有一个存储过程可以执行多次更新/合并...如果两个进程大致同时调用该过程,则它具有相对较高的死锁机会。
我想通过使我的存储过程不可重入来解决这个问题。这就是我希望所有对存储过程的调用都被序列化。最后一点,我希望对存储过程的任何调用都无限期地阻塞,直到任何其他正在运行的过程实例完成(然后允许任何阻塞的调用一次运行一个)。
我的调用代码是C#...我知道如何在C#中的同步对象上序列化代码,并希望在SQL Server 2008 R2中从概念上完成同样的事情。
这样做的最佳方式是什么?