DBCC OPENTRAN (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Helpt bij het identificeren van actieve transacties die kunnen verhinderen dat logboeken worden afgekapt.
DBCC OPENTRAN
geeft informatie weer over de oudste actieve transactie en de oudste gedistribueerde en niet-gedistribueerde gerepliceerde transacties, indien van toepassing, in het transactielogboek van de opgegeven database. Resultaten worden alleen weergegeven als er een actieve transactie bestaat in het logboek of als de database replicatiegegevens bevat. Er wordt een informatief bericht weergegeven als het logboek geen actieve transacties bevat.
Notitie
DBCC OPENTRAN
wordt niet ondersteund voor niet-SQL Server Publishers.
Transact-SQL syntaxisconventies
Syntaxis
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Argumenten
database_name | database_id | 0
De naam of id van de database waarvoor de oudste transactiegegevens moeten worden weergegeven. Als dit niet is opgegeven of als 0 is opgegeven, wordt de huidige database gebruikt. Databasenamen moeten voldoen aan de regels voor id's.
TABLERESULTS
Hiermee geeft u de resultaten in een tabelindeling op die in een tabel kan worden geladen. Gebruik deze optie om een tabel met resultaten te maken die kan worden ingevoegd in een tabel voor vergelijkingen. Wanneer deze optie niet is opgegeven, worden de resultaten opgemaakt voor leesbaarheid.
NO_INFOMSGS
Onderdrukt alle informatieve berichten.
Opmerkingen
Gebruik DBCC OPENTRAN
om te bepalen of er een geopende transactie bestaat in het transactielogboek. Wanneer u de BACKUP LOG
-instructie gebruikt, kan alleen het inactieve deel van het logboek worden afgekapt; een geopende transactie kan verhinderen dat het logboek volledig wordt afgekapt. Als u een open transactie wilt identificeren, gebruikt u sp_who
om de systeemproces-id te verkrijgen.
Resultatensets
DBCC OPENTRAN
retourneert de volgende resultatenset wanneer er geen openstaande transacties zijn:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Machtigingen
Vereist lidmaatschap van de sysadmin vaste serverfunctie of de db_owner vaste databaserol.
Voorbeelden
Een. De oudste actieve transactie retourneren
In het volgende voorbeeld wordt transactiegegevens opgehaald voor de huidige database. De resultaten kunnen variƫren.
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
Dit is de resultatenset.
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.
Notitie
Het resultaat 'UID (gebruikers-id)' is betekenisloos en wordt verwijderd in een toekomstige versie van SQL Server.
B. De optie WITH TABLERESULTS opgeven
In het volgende voorbeeld worden de resultaten van de opdracht DBCC OPENTRAN
in een tijdelijke tabel geladen.
-- 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
Verwante inhoud
- sys.dm_tran_database_transactions (Transact-SQL)
- TRANSACTIE (Transact-SQL)
- DOORVOERTRANSACTIE (Transact-SQL)
- DBCC (Transact-SQL)
- DB_ID (Transact-SQL)
- TRANSACTIE voor terugdraaien (Transact-SQL)