扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年5月24日
关键字: SQL Server
在本页阅读全文(共3页)
READPAST
这是一个比NOLOCK较少使用的数据表提示。这个提示指明数据库引擎返回结果时忽略加锁的行或数据页。
这个数据表提示的优点和NOLOCK一样,在处理查询时不会发生阻塞。此外,读脏数据并不会出现在READPASTA中,因为不会返回锁定的记录。这个语句的缺点是,因为不返回锁定的记录,所以很难确定结果集或修改语句是否包含所有必须的记录。在你的应用中可能需要添加一些逻辑来确保最终包含所有必须的记录。
READPAST数据表提示的例子和NOLOCK的例子类似。我将使用一个事务来更新SalesHistory数据表中的一个记录。
BEGIN TRANSACTION
UPDATE TOP(1) SalesHistory
SET SalePrice = SalePrice + 1
因为我没有提交或回滚这个事务,所以添加在更新记录上的锁仍旧有效。在一个新的查询编辑窗口中,运行下面的脚本,该脚本对SalesHistory数据表使用READPAST统计表中的记录数。
SELECT COUNT(*)
FROM SalesHistory WITH(READPAST)
最初SalesHistory数据表中包含300条记录,UPDATE语句正锁定表中一条记录,所以上面使用READPAST的脚本返回结果为299条记录,这说明我要更新的记录被锁定,所以被REASPAST提示忽略。
Tim chapman是位于路易斯维尔一家银行工作的SQL Server数据库管理员,有7年多的IT经验,同时,他还获得了微软SQL Server 2000 和SQL Server 2005认证。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者