在SQL 2005中锁定行
有没有办法在不启动事务的情况下锁定SQL 2005-2008数据库中的一行,所以其他进程无法更新该行直到它被解锁?
你可以使用RowLock或其他提示,但你应该小心。
HOLDLOCK提示将指示SQL Server持有锁,直到您提交事务。 ROWLOCK提示将只锁定这条记录,不会发出页面或表锁。
如果关闭连接或超时,锁定也将被释放。 我会非常小心的这样做,因为它会阻止任何碰到这行的SELECT语句在他们的轨道中死去。 SQL Server有许多可以使用的锁定提示。 当您在HOLDLOCK或ROWLOCK上进行搜索时,您可以在Books Online中看到它们。
您在服务器中执行的所有操作都发生在事务中,无论是隐式还是显式。
您不能简单地锁定没有事务的行(使行只能读取)。 您可以使数据库只读,但不只是一行。
解释你的目的,这可能是一个更好的解决方案。 隔离级别和锁定提示以及行版本控制。
你需要锁定一行 ,还是应该使用Sql Server的应用锁来做你需要的?
应用程序锁只是一个名字可以“锁定”,“解锁”并检查它是否被锁定的锁。 详情请参阅上面的链接。 (如果你的连接关闭等,他们会得到解锁,所以倾向于自己清理)
链接地址: http://www.djcxy.com/p/41755.html