如何在SQL Server中使用锁定来防止来自多个用户的相同存储过程事务?

时间:2016-03-10 11:38:53

标签: sql-server security stored-procedures transactions

我想知道如何使用锁来防止SQL Server中多个用户的同一存储过程事务?

我有很多书,每本书都有1到100个序列号。

我写了一个带有事务的存储过程,用于将数据插入主表,每个事务用序列号1,2,3 ... 100更新booktable,并为每个用户分配编号,就像我有1号书一样

图书/的SerialNo

  • User1有1/1
  • User2 = 1/2
  • ....
  • User100有1/100

多个用户将使用此应用程序。

所以我不想重复像

这样的特定书的序列号
User1 has 1/1
User2 has 1/2
user3 has 1/2
user4 has 1/3

我有多个交易T1,T2,T3 ......同时使用相同的程序。要将数据插入主表并更新书序列号..

现在我想知道如何保护或锁定交易。直到T1没有完成他们的任务.. T2暂停然后T2没有完成他们的任务..T3暂停..

请为我提供最佳解决方案或示例。

1 个答案:

答案 0 :(得分:0)

要弄清楚你的问题究竟是什么并不容易,但我认为你需要这样的东西:

{{1}}

这假设您有一个状态(免费/保留),并且您想为用户选择其中一个。