查找表锁定是否已禁用

时间:2009-09-23 22:54:22

标签: tsql

我想查找是否在所有数据库中的所有表中禁用表锁定。 所以我从sysindexes表或表级别检查索引级别的这个属性?

我该如何检查?

此致 Manjot

2 个答案:

答案 0 :(得分:1)

据我所知,无法禁用表级锁定。可以基于每个索引禁用页面和行锁定。

要检查这一点,请查看sys_indexes(如果在SQL 2005或更高版本上),查看allow_row_locks和allow_page_locks列。 如果在SQL 2000上,使用INDEXPROPERTY函数检查IsPageLockDisallowed和IsRowLockDisallowed属性。

SQL 2005:

SELECT object_name(object_id), name, index_id, allow_row_locks, allow_page_locks FROM sys.indexes

SQL 2000

SELECT object_name(id), name, indid, INDEXPROPERTY(id, indid, 'IsPageLockDisallowed') AS IsPageLockDisallowed, INDEXPROPERTY(id, indid, 'IsRowLockDisallowed ') AS IsRowLockDisallowed 
FROM sysindexes

答案 1 :(得分:0)

我知道这个年代很久了,那时可能还没有应用,但是您当然可以在表级别禁用锁:

从系统表t中选择t.name,lock_escalation_desc