2016-08-18 7 views
0

Sybase ниже запрос даст мне блокировку на столенайти замки на стол с строкой, специфической

select distinct object_name(id) 
from master..syslocks 

то, что я ищу, чтобы выяснить, на какую строку его замок?

например, если я получил update messages set name ='hi' where id =1 и сообщения вызывают блокировки, я хочу, чтобы запрос знал, что id = 1 для этой таблицы вызывает блокировку. могу я знать это?

ответ

1

Во-первых, это зависит, если вы таблицы с помощью AllPages/страниц данных/DataRows схема блокировки (см выход «процедуры sp_help TABLENAME»)

Если DataRows, вы можете получить блокировку на определенной строке, в противном случае блокировки будет отображаться на странице (данные или индекс, или и то и другое), или на таблице. Используя syslocks или sp_lock, вы можете получить страницу, связанную с блокировкой. Чтобы распечатать содержимое страницы, вы можете запустить «dbcc-страницу (database_id, pageno, 4)»

+0

Я пытался использовать 'dbcc-страницу', где я должен получить databse_id? от syslocks? столбец 'dbid'? и pageno из столбца 'page' в syslocks? – Moudiz

+0

Да столбец dbid и страница. – Vince