"Можете ли вы заблокировать строки / таблицы вне транзакций (т.е. в обычных запросах)?"
Вам лучше понять, что в SQL Server нет обычных запросов или действий, они ВСЕ, без каких-либо исключений, транзакционные.Именно так достигается кислотность, см., Например, [1].Если клиентские инструменты или разработчик в интерактивном режиме не указывают транзакцию явно с помощью BEGIN TRANSACTION и COMMIT / ROLLBACK, то используются неявные транзакции.
Кроме того, транзакция не является синонимом блокировки / блокировки.Существует множество механизмов управления параллелизмом без блокировки (например, управление версиями и т. Д.), А также уровень «изоляции» транзакций READ UNCOMMITTED (в данном случае отсутствие какой-либо изоляции) не контролирует его вообще.
Обновление 2:
Чтобы что-то заблокировать, всегда следует использовать табличную подсказку?
Поскольку уровень изоляции транзакции не является READ UNCOMMITTED или одним из уровней изоляции версий версий (моментальных снимков), например, READ COMMITTED по умолчанию или устанавливается, например,
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
введены блокировки (не знаю, с чего начать и как закончить эту тему [2]).Табличные подсказки, которые можно использовать в выражениях, переопределяют эти параметры.
[1]
Пол С. Рэндал.Общие сведения о ведении журнала и восстановлении в SQL Server
Что такое ведение журнала?
http://technet.microsoft.com/en-us/magazine/2009.02.logging.aspx#id0060003
[2]
Вставить трейлинг) после нажатия на эту ссылку
http://en.wikipedia.org/wiki/Isolation_(database_systems)
Обновление:
5 минут назад у меня была репутация 784 (такая же, как 24 часа назад), и теперь, без каких-либо видимых отрицательных голосов, она упала до 779.
Где я могу задать этот вопрос, если меня забанили в мета-версии.stackoverflow.com?