0

我有一个在任务调度程序下运行的 exe,并计划每周运行一次。此 exe 存在于 2 个不同的克隆服务器 [负载平衡] 上,两者都计划在同一日期时间执行。

此 exe 在数据库中的一个表中检查标志并执行......问题是无论如何只有 1 个服务器必须执行 exe 而不是两者都执行......

所以服务器 1 检查标志并且必须设置它然后执行 exe .....所以当服务器 2 轮询标志时,它意识到第一个已经执行并退出。

现在我的问题是,我如何确保检查数据库中标志的服务器设置它,以便第二台服务器不会获得未设置的值....

类似于数据库中的关键部分问题

4

1 回答 1

0

SQL Server 具有专门针对此类问题设计的应用锁:http: //msdn.microsoft.com/en-us/library/ms189823.aspx

如果你真的想用你的值更新一个表,你可以在一个(隐式)事务中进行测试并设置:

更新 flagstable set flag = 'server1' 其中 flag 为空

于 2013-06-20T13:38:17.940 回答