我们有一个必须处理SQL Server表中每个新记录的作业。此表有一列Created
,其约束条件将此列的值默认为GETUTCDATE()
。工作程序如下:
Created
值大于或等于上次Created
值的所有记录Created
值更新为其在记录中看到的最高Created
值。这似乎工作得很好,但是,我们注意到这项工作有时会跳过记录。我们认为这可能是因为以下情况:
Created
值默认为1
Created
值默认为2
Created
值更新为2
。Created
值小于上次看到的Created
值。这种情况可能吗?在挂起的插入事务完成之前,读取操作是否会阻塞?
答案 0 :(得分:0)
描述处理作业时使用READ UNCOMMITTED隔离级别的情况(从表中选择* with(nolock)或SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED in script)。请检查READ COMMITTED(删除带有nolock的提示)列表中的作业选择数据。