SQL Server UPDATE WITH ROWLOCK似乎没有工作

时间:2016-07-06 10:24:57

标签: sql sql-update rowlocking

我有一个场景,我需要从数据库表中检索INT,将其递增1然后返回旧值。我需要确保如果立即再次调用存储过程,则返回的值(NextBookingId)与第一次调用存储的produredure返回的值不同。

我一直在使用下面的代码,并认为它正在运行,但我认为它已经过适当的测试,直到现在它似乎没有工作,因为2个单独立即通话存储过程似乎返回相同的值。

DECLARE @NextBookingId INT

UPDATE Company WITH (ROWLOCK)
SET  @NextBookingId = (NextBookingId),
     NextBookingId = (NextBookingId + 1)
WHERE CompanyId = @CompanyId 

SELECT 
    CompanyId
,   @NextBookingId AS NextBookingId
FROM Company
WHERE CompanyId = @CompanyId

这应该包含在交易中吗?我在CompanyId主键上有一个聚集索引。

0 个答案:

没有答案