我想查找是否在所有数据库中的所有表中禁用表锁定。 所以我从sysindexes表或表级别检查索引级别的这个属性?
我该如何检查?
此致 Manjot
答案 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