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 将在整个表上置排它锁直至该命令或事务结束这将防止其他进程读取或修改表中的数据 使用这些选项将使系统忽略原先在SET语句设定的事务隔离级别(Transaction Isolation Level) 请查阅SQL Server 联机手册获取更多信息 |