2016-08-18 61 views
0

下面的查询会给我锁在桌子上找到与specifc行SYBASE表

select distinct object_name(id) 
from master..syslocks 

锁什么,我搜索是找出哪一行其锁定?

例如,如果我得到update messages set name ='hi' where id =1和消息导致锁,我想要一个查询来知道id = 1这个表导致锁定。我可以知道吗?

回答

1

首先,它取决于如果表使用所有页/数据页/数据行锁定方案(见“sp_help将表名”输出)

如果数据行,你可以得到特定行的锁,否则锁将在页面上(数据或索引或两者)或在表格上。 使用syslocks或sp_lock,您可以检索涉及锁定的页面。 要打印页面的内容,您可以运行“dbcc页面(database_id,pageno,4)”

+0

我试图使用'dbcc页面'在哪里应该得到databse_id?来自syslocks?列'dbid'?和syslogs中的'page'列pageno? – Moudiz

+0

是列的dbid和页面。 – Vince