Оба синтаксически правильные.
NOLOCK станет псевдонимом для таблицы1.
WITH (NOLOCK) часто используется как волшебный способ ускорить чтение базы данных, но я стараюсь избегать его использования.
В результирующем наборе могут быть строки, которые еще не были зафиксированы, которые часто позже откат.
Ошибка или набор результатов могут быть пустыми, пропускать строки или отображать одну и ту же строку несколько раз.
Это связано с тем, что другие транзакции перемещают данные одновременно с чтением.
READ COMMITTED добавляет дополнительную проблему, когда данные повреждены в одном столбце, где несколько пользователей одновременно меняют одну и ту же ячейку.
Есть и другие побочные эффекты, которые приводят к жертве увеличения скорости, которое вы надеялись получить в первую очередь.
Теперь вы знаете, никогда не используйте его снова.
ОК, так что с (nolock) в значительной степени стал новым синтаксисом с sql 2005, хотя nolock сам по себе все еще работает. это оно? – seenasan
Да, по-прежнему работает без «с», но он устарел, то есть он не будет работать так, скорее всего, в выпуске в какой-то момент в будущем (может быть следующий выпуск, может быть, после этого, может быть 10 отныне) ... – chadhoc
также о вставке, обновление следует с (nolock) использовать там тоже как норму программирования? – seenasan