如果使用MS SQL的WITH(NOLOCK)选项对select语句和insert语句是否安全?

Bri*_*ndy 1 sql sql-server-2005

如果您从不修改行,只插入或删除行,那么对select语句和插入语句使用MS SQL的WITH(NOLOCK)选项是否安全?

我......你永远不会对任何行进行更新.

Tom*_*m H 5

如果您询问是否会获得可能不再准确的数据,那么这取决于您的查询.例如,如果您执行以下操作:

SELECT
     my_id,
     my_date
FROM
     My_Table
WHERE
     my_date >= '2008-01-01'
Run Code Online (Sandbox Code Playgroud)

在2008-01-01或之后插入日期的同时,您可能无法获得该新行.这也会影响生成聚合的查询.

如果您只是通过删除/插入来模仿更新,那么您也可能获得数据的"旧"版本.