【发布时间】:2016-02-04 10:36:46
【问题描述】:
我有一个表,其中有一个名为 Time 的列,类型为 datetime2。
我需要运行整个查询,而其他人在执行时不读取或更改表中的数据。
IF NOT EXISTS (SELECT Id FROM Bookings WHERE Time >= '2016-02-02 09:00:00' AND Time < '2016-02-02 11:00:00')
BEGIN
-- Insert some data
END
查询位于 asp.NET 应用程序的事务中,但我不确定这是否足够。我需要应用锁定提示或设置隔离级别吗?如果是这样,我该怎么做?
我读过 TABLOCK,它似乎在做我想做的事,但它是不是有点矫枉过正?我在哪里可以指定整个查询需要一个 TABLOCK 而不仅仅是 select 语句?
【问题讨论】:
标签: sql-server locking transaction-isolation