在具有特定行 sybase 的 table 上找到锁
find locks on a table with specifc row sybase
下面的查询会给我锁 table
select distinct object_name(id)
from master..syslocks
我正在搜索的是找出锁定在哪一行?
例如,如果我收到 update messages set name ='hi' where id =1
并且消息导致锁定,我希望查询知道此 table 的 id =1 导致锁定。我能知道吗?
首先,这取决于您 table 是否正在使用 AllPages/Datapages/Datarows 锁定方案(参见 "sp_help tablename" 的输出)
如果是数据行,您可以在特定行上获得锁,否则锁将在页面(数据或索引或两者)或 table 上。
使用 syslocks 或 sp_lock,您可以检索涉及锁定的页面。
要打印页面内容,您可以 运行 "dbcc page (database_id,pageno,4)"
下面的查询会给我锁 table
select distinct object_name(id)
from master..syslocks
我正在搜索的是找出锁定在哪一行?
例如,如果我收到 update messages set name ='hi' where id =1
并且消息导致锁定,我希望查询知道此 table 的 id =1 导致锁定。我能知道吗?
首先,这取决于您 table 是否正在使用 AllPages/Datapages/Datarows 锁定方案(参见 "sp_help tablename" 的输出)
如果是数据行,您可以在特定行上获得锁,否则锁将在页面(数据或索引或两者)或 table 上。 使用 syslocks 或 sp_lock,您可以检索涉及锁定的页面。 要打印页面内容,您可以 运行 "dbcc page (database_id,pageno,4)"