• See if this helps

    select

    MainLock.Process.value('@id', 'varchar(100)') AS LockID,

    OwnerList.Owner.value('@id', 'varchar(200)') AS ProcessId,

    MainLock.Process.value('local-name(.)','varchar(100)') AS LockType,

    MainLock.Process.value('@objectname','sysname') AS ObjectName,

    OwnerList.Owner.value('@mode', 'varchar(10)') AS LockMode

    from @DeadlockGraph.nodes('/deadlock-list/deadlock/resource-list') AS Lock(list)

    OUTER APPLY Lock.list.nodes('(pagelock,keylock,ridlock,objectlock,exchangeEvent)') AS MainLock(Process)

    OUTER APPLY MainLock.Process.nodes('owner-list/owner') AS OwnerList(Owner)

    ;

    ____________________________________________________

    Deja View - The strange feeling that somewhere, sometime you've optimised this query before

    How to get the best help on a forum

    http://www.sqlservercentral.com/articles/Best+Practices/61537