0

with(nolock) или (nolock) - есть ли разница?

9

Вопрос: Разница между использованием with(nolock) и просто (nolock) в SQL

Описание проблемы: Всё основано на предположении, что использование with(nolock) полностью оправдано в данной ситуации. Существует множество вопросов, касающихся того, стоит ли использовать with(nolock).

Я посмотрел разные источники и не нашел информации о том, есть ли на самом деле разница между использованием with(nolock):

select customer, zipcode from customers c with(nolock) 

или просто (nolock):

select customer, zipcode from customers c (nolock) 

Существует ли функциональная разница между этими двумя способами? В чем заключается стилистическое различие?
Один из них старше другого и может быть устаревшим?

1 ответ(ов)

0

В SQL Server действительно существует различие между использованием (nolock) и WITH (NOLOCK). В versions 2000 и раньше только WITH (NOLOCK) работало корректно, тогда как просто (nolock) вызывало ошибки.

Также стоит отметить, что при работе с связными серверами, обычное использование (nolock) не сработает. Здесь необходимо использовать именно WITH (NOLOCK). Ниже приведены примеры для наглядности:

-- это не сработает 
SELECT * FROM server1.DB1.dbo.table1 (nolock)

-- это сработает 
SELECT * FROM server1.DB1.dbo.table1 WITH (NOLOCK)

Таким образом, для совместимости и избежания ошибок лучше всегда использовать конструкцию WITH (NOLOCK).

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь