有没有办法在SQL 2005-2008数据库中锁定一行而不启动事务,所以其他进程无法更新该行直到它被解锁?在SQL 2005-2008中锁定行
7
A
回答
3
您可以使用RowLock or other hints但你应该careful ..
的HOLDLOCK提示将指示的SQL Server,直到您提交事务持有的锁。 ROWLOCK提示将只锁定这条记录,不会发出页面或表锁。
如果关闭连接或超时,锁定也将被释放。我会非常小心的这样做,因为它会阻止任何碰到这行的SELECT语句在他们的轨道中死去。 SQL Server有许多可以使用的锁定提示。当您在HOLDLOCK或ROWLOCK上进行搜索时,您可以在Books Online中看到它们。
1
在服务器中执行的所有操作都发生在事务中,无论是隐式还是显式。
您不能简单地锁定没有事务的行(使行只能读取)。您可以使数据库只读,但不只是一行。
解释你的目的,这可能是一个更好的解决方案。隔离级别和锁定提示以及row versioning。
0
你需要锁定行,还是应该Sql Server's Application locks你需要什么?
应用程序锁只是一个名字可以“锁定”,“解锁”并检查它是否被锁定的锁。详情请参阅上面的链接。 (他们得到解锁,如果你的连接关闭等,所以往往会自己清理)
+0
我无法使用应用程序锁定,因为访问“锁定”行的其他应用程序不知道他们需要先检查应用程序锁定。 – alex 2009-09-22 19:49:46
相关问题
- 1. SQL Server行锁定
- 2. 在表中锁定一行SQL Server
- 3. 在SQL Server中锁定
- 4. 在SQL Server中锁定表
- 5. SQL并行删除锁定
- 6. 查找给定表的锁定行以及锁定在SQL Server中的用户
- 7. 了解SQL Server中的锁定行为
- 8. 在SQL Server上读取锁定行?
- 9. 解释在SQL Server的锁定行为
- 10. 从C#winform锁定和解锁sql数据库中的行
- 11. SQL Server锁定
- 12. 如何锁定在SQL
- 13. 在SQL Server上锁定
- 14. 将一个表锁锁定行锁定
- 15. 在sql表中锁定记录
- 16. 在sql中锁定存储过程
- 17. SQL Server - 使用JDBC的行锁定
- 18. 使用SQL Server锁定的DataReader行为
- 19. 使用INSERT INTO的Oracle SQL锁定行
- 20. Sql光标锁定
- 21. SQL锁定默认
- 22. SQL Server锁定表
- 23. SQL锁定问题
- 24. 如何在SQL Server 2008中用锁定表更新大量行?
- 25. 如何检测一行是否被锁定在sql server表中?
- 26. 在SQL Server 2008中使用NHibernate进行悲观锁定
- 27. 在SQL中使用双重检查锁定的死锁
- 28. 在SQL Server 2008中添加列锁表锁定?
- 29. 在extjs中锁定网格中的行
- 30. 锁定多行
我试过这个,但它不是我想要的。当我执行更新时,它确实拥有锁定。更新一直等到锁被释放,然后更新记录(这不是我想要的)。其次,我仍然可以在没有任何问题的情况下执行选择。 – Martijn 2010-09-22 08:26:21