Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    SQL Server 2005 e records lockati

    Ho un gestionale, non scritto da me, che a volte mi da problemi strani sui lock.
    I lock vengono fatti con la tecnica dell'update fantasma con successivo rollback etc..

    Mi chiadevo, esiste un sistema per recuperare in un bel elenco contenete tutte le transazioni non ancora committate?
    Mi piacerebbe che questo elenco contenesse la tabella con il lock... ma soprattutto il record!

    Io attualmente faccio questo:
    select * from (select request_session_id as id_processo_sql, resource_database_id as id_database,object_name(resource_associated_entity _id) as 'nome_tabella' from sys.dm_tran_locks where resource_type = 'OBJECT' and request_mode = 'IX' and resource_database_id = (select dbid from master.dbo.sysdatabases where name = 'il_nome_del_mio_db')) as t1
    join (select spid as id_processo_sql, loginame as nome_utente, hostprocess as id_processo_exe,last_batch as ora_inizio, sql_handle as handle_sql from sys.sysprocesses where spid IN (select request_session_id from sys.dm_tran_locks where resource_type = 'PAGE' and request_mode = 'IX' and resource_database_id = (select dbid from master.dbo.sysdatabases where name = 'il_nome_del_mio_db'))
    ) as t2 on t1.id_processo_sql = t2.id_processo_sql

    Pero' purtroppo non so qual'e' il record lockato... ma solo la tabella.

    Grazie a chi sapra' e vorra' rispondermi.

    Ciao.

  2. #2
    Ok, credo di aver quasi trovato.
    Devo legge il resource_description che mi da
    fileagina:rid

    Queste solo le coordinate del record.

    La domanda e'... posso fare una select utilizzando queste tre coordinate per capire di quale record si tratta?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.