Cette documentation est archivée et n’est pas conservée.

DBCC OPENTRAN (Transact-SQL)

Affiche les informations relatives à la transaction active la plus ancienne et les transactions de réplication distribuées et non distribuées les plus anciennes, le cas échéant, à l'intérieur d'une base de données spécifiée. Les résultats ne sont affichés que s'il existe une transaction active ou si la base de données contient des informations de réplication. Un message d'informations est affiché s'il n'y a pas de transactions actives.

ms182792.note(fr-fr,SQL.90).gifRemarque :
DBCC OPENTRAN n'est pas pris en charge pour les serveurs de publication non-SQL Server.

Icône Lien de rubrique Conventions de syntaxe Transact-SQL


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

database_name | database_id | 0

Nom ou ID de la base de données pour laquelle les informations de transaction les plus anciennes sont affichées. Si aucune valeur n'est spécifiée ou si 0 est indiqué, c'est la base de données active qui est utilisée. Les noms de base de données doivent suivre les règles applicables aux Identificateurs.

WITH

Active les options à spécifier.

TABLERESULTS

Spécifie les résultats sous le format d'un tableau qui peut être chargé dans une table. Vous devez utiliser cette option pour créer une table de résultats pouvant être insérée dans une table à des fins de comparaison. Lorsque cette option n'est pas précisée, les résultats sont formatés pour pouvoir être lus.

NO_INFOMSGS

Supprime tous les messages d'information.

DBCC OPENTRAN renvoie le jeu de résultats suivant lorsqu'il n'y a pas de transactions ouvertes :

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

Vous devez utiliser DBCC OPENTRAN pour déterminer l'existence d'une transaction ouverte dans le journal des transactions. L'instruction BACKUP LOG ne permet de vider que la partie inactive du journal. Une transaction ouverte peut empêcher la troncature complète du journal. Dans les versions antérieures de Microsoft SQL Server, il fallait, pour éliminer du journal les transactions non validées, que tous les utilisateurs se déconnectent ou que le serveur soit mis hors service puis relancé. Pour identifier une transaction ouverte, utilisez sp_who pour obtenir l'ID du processus système.

Nécessite l'appartenance au rôle serveur fixe sysadmin ou au rôle de base de données fixe db_owner.

L'exemple suivant obtient des informations de transaction pour la base de données active. Les résultats peuvent varier.

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

Voici l'ensemble des résultats.

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.
Afficher: