DBCC OPENTRAN (Transact-SQL)DBCC OPENTRAN (Transact-SQL)

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Mithilfe von DBCC OPENTRAN können aktive Transaktionen identifiziert werden, die die Protokollkürzung möglicherweise verhindern.DBCC OPENTRAN helps to identify active transactions that may be preventing log truncation. DBCC OPENTRAN zeigt Informationen zur ältesten aktiven Transaktion sowie zu den ältesten verteilten und nicht verteilten replizierten Transaktionen (sofern vorhanden) im Transaktionsprotokoll der angegebenen Datenbank an.DBCC OPENTRAN displays information about the oldest active transaction and the oldest distributed and nondistributed replicated transactions, if any, within the transaction log of the specified database. Ergebnisse werden nur angezeigt, wenn im Protokoll eine aktive Transaktion vorhanden ist oder die Datenbank Replikationsinformationen enthält.Results are displayed only if there is an active transaction that exists in the log or if the database contains replication information. Wenn keine aktiven Transaktionen im Protokoll enthalten sind, wird eine Informationsmeldung angezeigt.An informational message is displayed if there are no active transactions in the log.

Hinweis

DBCC OPENTRAN wird ausschließlich für SQL ServerSQL Server-Verleger unterstützt.DBCC OPENTRAN is not supported for non- SQL ServerSQL Server Publishers.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

Database_name | Database_id| 0database_name | database_id| 0
Der Name oder die ID der Datenbank, für die Informationen zur ältesten Transaktion angezeigt werden sollen.Is the name or ID of the database for which to display the oldest transaction information. Erfolgt keine Eingabe, oder wird 0 angegeben, wird die aktuelle Datenbank verwendet.If not specified, or if 0 is specified, the current database is used. Datenbanknamen müssen den Regeln für entsprechen Bezeichner.Database names must comply with the rules for identifiers.

TABLERESULTSTABLERESULTS
Gibt die Ergebnisse, die in eine Tabelle geladen werden können, im Tabellenformat an.Specifies the results in a tabular format that can be loaded into a table. Verwenden Sie diese Option, um eine Tabelle mit Ergebniswerten zu erhalten, die zum Durchführen von Vergleichen in eine Tabelle eingefügt werden können.Use this option to create a table of results that can be inserted into a table for comparisons. Wenn diese Option nicht angegeben ist, werden die Ergebnisse zwecks besserer Lesbarkeit formatiert.When this option is not specified, results are formatted for readability.

NO_INFOMSGSNO_INFOMSGS
Alle Informationsmeldungen werden unterdrückt.Suppresses all informational messages.

HinweiseRemarks

Verwenden Sie DBCC OPENTRAN, um zu ermitteln, ob eine offene Transaktion innerhalb des Transaktionsprotokolls vorhanden ist.Use DBCC OPENTRAN to determine whether an open transaction exists within the transaction log. Wenn Sie die BACKUP LOG-Anweisung verwenden, kann nur der inaktive Teil des Protokolls abgeschnitten werden. Eine offene Transaktion kann verhindern, dass das Protokoll vollständig abgeschnitten wird.When you use the BACKUP LOG statement, only the inactive part of the log can be truncated; an open transaction can prevent the log from truncating completely. Zum Identifizieren einer geöffneten Transaktion können Sie mit sp_who die Systemprozess-ID abrufen.To identify an open transaction, use sp_who to obtain the system process ID.

ResultsetsResult Sets

DBCC OPENTRAN gibt folgendes Resultset zurück, wenn keine offenen Transaktionen vorhanden sind:DBCC OPENTRAN returns the following result set when there are no open transactions:

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

BerechtigungenPermissions

Erfordert die Mitgliedschaft in der festen Serverrolle sysadmin oder der festen Datenbankrolle db_owner .Requires membership in the sysadmin fixed server role or the db_owner fixed database role.

BeispieleExamples

A.A. Zurückgeben der ältesten aktiven TransaktionReturning the oldest active transaction

Im folgenden Beispiel werden Transaktionsinformationen für die aktuelle Datenbank abgerufen.The following example obtains transaction information for the current database. Die Ergebnisse können variieren.Results may vary.

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  

Im Folgenden finden Sie das Resultset.Here is the result set.

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.

Hinweis

Das "UID (user ID)"-Ergebnis ist bedeutungslos und wird in einer zukünftigen Version von SQL ServerSQL Server entfernt.The "UID (user ID)" result is meaningless and will be removed in a future version of SQL ServerSQL Server.

B.B. Angeben der WITH TABLERESULTS-OptionSpecifying the WITH TABLERESULTS option

Im folgenden Beispiel werden die Ergebnisse des DBCC OPENTRAN-Befehls in eine temporäre Tabelle geladen.The following example loads the results of the DBCC OPENTRAN command into a temporary table.

-- Create the temporary table to accept the results.  
CREATE TABLE #OpenTranStatus (  
   ActiveTransaction varchar(25),  
   Details sql_variant   
   );  
-- Execute the command, putting the results in the table.  
INSERT INTO #OpenTranStatus   
   EXEC ('DBCC OPENTRAN WITH TABLERESULTS, NO_INFOMSGS');  

-- Display the results.  
SELECT * FROM #OpenTranStatus;  
GO  

Siehe auchSee Also

BEGIN TRANSACTION (Transact-SQL)BEGIN TRANSACTION (Transact-SQL)
COMMIT der Transaktion ( Transact-SQL )COMMIT TRANSACTION (Transact-SQL)
DBCC (Transact-SQL)DBCC (Transact-SQL)
Db_id ( Transact-SQL )DB_ID (Transact-SQL)
ROLLBACK TRANSACTION ( Transact-SQL )ROLLBACK TRANSACTION (Transact-SQL)