Compartir a través de


DBCC OPENTRAN (Transact-SQL)

Presenta información acerca de la transacción activa más antigua y las transacciones distribuidas y no distribuidas replicadas más antiguas, si las hubiera, de la base de datos especificada. Sólo se presentan resultados si hay una transacción activa o si la base de datos contiene información de réplica. Si no hay transacciones activas, se presenta un mensaje informativo.

[!NOTA] DBCC OPENTRAN no se admite para publicadores que no sean de SQL Server.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

DBCC OPENTRAN 
[ 
        ( [ database_name | database_id | 0 ] ) ]
    { [ WITH TABLERESULTS ]
      [ , [ NO_INFOMSGS ] ]
    }
] 

Argumentos

  • database_name | database_id | 0
    Es el nombre o identificador de la base de datos de la que se va a presentar la información de la transacción más antigua. Si no se especifica o si se especifica 0, se utiliza la base de datos actual. Los nombres de las bases de datos deben cumplir las reglas de los Identificadores.
  • WITH
    Permite especificar opciones.
  • TABLERESULTS
    Especifica los resultados en un formato tabular que se puede cargar en una tabla. Utilice esta opción para crear una tabla de resultados que se pueda insertar en una tabla y hacer comparaciones. Cuando no se especifica esta opción, se da formato a los resultados de modo que sean legibles.
  • NO_INFOMSGS
    Suprime todos los mensajes de información.

Conjuntos de resultados

DBCC OPENTRAN devuelve el siguiente conjunto de resultados cuando no hay transacciones abiertas:

No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Notas

Utilice DBCC OPENTRAN para determinar si hay alguna transacción abierta dentro del registro de transacciones. Cuando utiliza la instrucción BACKUP LOG, sólo puede truncar la parte inactiva del registro; una transacción abierta puede evitar que el registro se trunque completamente. En versiones anteriores de Microsoft SQL Server, para eliminar del registro las transacciones sin confirmar, todos los usuarios tenían que terminar sus sesiones o se tenía que apagar y reiniciar el servidor. Para identificar una transacción abierta, utilice sp_who para obtener el identificador del proceso del sistema.

Permisos

Debe pertenecer a la función fija de servidor sysadmin o a la función fija de base de datos db_owner.

Ejemplos

En el ejemplo siguiente se obtiene información de las transacciones para la base de datos actual. Los resultados pueden variar.

CREATE TABLE T1(Col1 int, Col2 char(3));
GO
BEGIN TRAN
INSERT INTO T1 VALUES (101, 'abc');
GO
DBCC OPENTRAN;
ROLLBACK TRAN;
GO
DROP TABLE T1;
GO

Éste es el conjunto de resultados.

Transaction information for database 'master'.
Oldest active transaction:
SPID (server process ID) : 52
UID (user ID) : -1
Name          : user_transaction
LSN           : (518:1576:1)
Start time    : Jun  1 2004  3:30:07:197PM
SID           : 0x010500000000000515000000a065cf7e784b9b5fe77c87709e611500
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Vea también

Referencia

BEGIN TRANSACTION (Transact-SQL)
COMMIT TRANSACTION (Transact-SQL)
DBCC (Transact-SQL)
DB_ID (Transact-SQL)
ROLLBACK TRANSACTION (Transact-SQL)

Ayuda e información

Obtener ayuda sobre SQL Server 2005