on 2016 Jan 08 5:23 AM
Hello
I have setup a event to log deadlocks. I recognize that sa_report_deadlocks()
returns a object_id
and record_id
. With the object id I can identify the base table.
But how can I find the row in question ?
Kind regards
Here's a WAG: try ROWID() as in...
SELECT * FROM DBA.t WHERE ROWID ( t ) = [record_id value];
Caveat Emptor: I have not tried that particular logic with sa_report_deadlocks(), but Foxhound displays a similar query for you to use with the sa_locks() row_identifier column; see the Locked Row Query: field here...
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
As the record_id column within sa_report_deadlock() is declared as "The row ID of the associated row.", I would think the ROWID() system function will help. Here's a similar sample for the sa_locks() output:
SELECT * FROM sa_locks() S JOIN GROUPO.Employees WITH( NOLOCK ) ON ROWID( Employees ) = S.row_identifier WHERE S.table_name = 'Employees';
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
68 | |
8 | |
8 | |
7 | |
7 | |
6 | |
6 | |
6 | |
6 | |
5 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.