网站制作学习网ASP→正文:用Recordset对象打开数据库是用哪种锁定方式比较合适
字体:

用Recordset对象打开数据库是用哪种锁定方式比较合适

ASP 2008/9/17 22:09:03  点击:不统计

锁定数据库的一个表:

SELECT * FROM table WITH (HOLDLOCK)

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

SELECT * FROM table WITH (TABLOCKX)

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将在整个摆上置排它锁直至该命令或事务结束。这将防止其他进程读取或修改表中的数据。

·上一篇:asp获取上一周时间 >>    ·下一篇:当前记录集不支持更新。这可能是提供程序的限制,也可能是选定锁定类型的限制。 >>
推荐文章
最新文章