有没有一种方法可以在不启动事务的情况下锁定SQL 2005-2008数据库中的行,以便其他进程在解锁之前无法更新该行?
您可以使用RowLock或其他提示,但是需要小心..
HOLDLOCK提示将指示SQL Server保持锁定状态直到您提交事务。ROWLOCK提示仅会锁定此记录,并不会发出页面或表锁。
如果您关闭连接或超时,锁定也将被释放。我非常小心地执行此操作,因为它会立即停止任何命中此行的SELECT语句。 SQL Server具有许多可用的锁定提示。当您搜索HOLDLOCK或ROWLOCK时,可以在Books Online中看到它们。
服务器中执行的所有操作都在事务中发生,无论是隐式还是显式。
您不能仅使用行锁定(使行只读)而没有事务。您可以将数据库设置为只读,但不能仅针对一行进行设置。
解释您的目的,可能会有更好的解决方案。隔离级别、锁提示和行版本控制。