当前位置:   article > 正文

c#+mysql锁_C#数据表加锁解锁

mysql 锁表 csdn c#

锁定数据库的一个表

SELECT   *   FROM   table   WITH   (HOLDLOCK)

其他事务可以读取表,但不能更新删除

SELECT   *   FROM   table   WITH   (TABLOCKX)

其他事务不能读取表,更新和删除

SELECT   语句中“加锁选项”的功能说明

SQL   Server提供了强大而完备的锁机制来帮助实现数据库系统的并发性和高性能。用户既能使用SQL   Server的缺省设置也可以在select   语句中使用“加锁选项”来实现预期的效果。   本文介绍了SELECT语句中的各项“加锁选项”以及相应的功能说明。

功能说明:

NOLOCK(不加锁)

此选项被选中时,SQL   Server   在读取或修改数据时不加任何锁。   在这种情况下,用户有可能读取到未完成事务(Uncommited   Transaction)或回滚(Roll   Back)中的数据,   即所谓的“脏数据”。

HOLDLOCK(保持锁)

此选项被选中时,SQL   Server   会将此共享锁保持至整个事务结束,而不会在途中释放。

UPDLOCK(修改锁)

此选项被选中时,SQL   Server   在读取数据时使用修改锁来代替共享锁,并将此锁保持至整个事务或命令结束。使用此选项能够保证多个进程能同时读取数据但只有该进程能修改数据。

TABLOCK(表锁)

此选项被选中时,SQL   Server   将在整个表上置共享锁直至该命令结束。   这个选项保证其他进程只能读取而不能修改数据。

PAGLOCK(页锁)

此选项为默认选项,   当被选中时,SQL   Server   使用共享页锁。

TABLOCKX(排它表锁)

此选项被选中时,SQL   Server   将在整个表上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。

可参考:

http://community.csdn.net/Expert/topic/3359/3359873.xml?temp=.9983332

http://community.csdn.net/Expert/topic/3382/3382022.xml?temp=.5168726

[导读:   各种大型数据库所采用的锁的基本理论是一致的,但在具体实现上各有差别。SQL   Server更强调由系统来管理锁。在用户有SQL请求时,系统分析请求,自动在满足锁定条件和系统性能之间为数据库加上适当的锁,同时系统在运行期间常常自动进行优化处理,实行动态加锁。对于一般的用户而言,通过系统的自动锁定管理机制基本可以满足使用要求,但如果对数据安全、数据库完整性和一致性有特殊要求,就需要了解SQL   Server的锁机制,掌握数据库锁定方法。]

锁是数据库中的一个非常重要的概念,它主要用于多用户环境下保证数据库完整性和一致性。   我们知道,多个用户能够同时操纵同一个数据库中的数据,会发生数据不一致现象。即如果没有锁定且多个用户同时访问一个数据库,则当他们的事务同时使用相同的数据时可能会发生问题。这些问题包括:丢失更新、

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/641820
推荐阅读
相关标签
  

闽ICP备14008679号