Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
Hjälper till att identifiera aktiva transaktioner som kan förhindra loggtrunkering.
DBCC OPENTRAN visar information om den äldsta aktiva transaktionen och de äldsta distribuerade och icke-distribuerade replikerade transaktionerna, om några, i transaktionsloggen för den angivna databasen. Resultat visas endast om det finns en aktiv transaktion i loggen eller om databasen innehåller replikeringsinformation. Ett informationsmeddelande visas om det inte finns några aktiva transaktioner i loggen.
Anmärkning
DBCC OPENTRAN stöds inte för icke-SQL Server-utgivare.
Transact-SQL syntaxkonventioner
Syntax
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Arguments
| database_namedatabase_id | 0
Namnet eller ID:t på databasen för vilken den äldsta transaktionsinformationen ska visas. Om det inte anges, eller om 0 anges, används den aktuella databasen. Databasnamn måste följa reglerna för identifierare.
TABELLRESULTAT
Specificerar resultaten i ett tabellformat som kan laddas in i en tabell. Använd detta alternativ för att skapa en resultattabell som kan infogas i en tabell för jämförelser. När detta alternativ inte specificeras formateras resultaten för läsbarhet.
NO_INFOMSGS
Undertrycker alla informationsmeddelanden.
Anmärkningar
Använd DBCC OPENTRAN för att avgöra om en öppen transaktion finns i transaktionsloggen. När du använder satsen BACKUP LOG kan endast den inaktiva delen av loggen trunkeras; en öppen transaktion kan förhindra att loggen avskärs helt. För att identifiera en öppen transaktion, använd sp_who för att hämta sessions-ID:t.
Resultatuppsättningar
DBCC OPENTRAN returnerar följande resultatmängd när inga öppna transaktioner finns:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissions
Kräver medlemskap i sysadmin fast serverroll eller db_owner fast databasroll.
Examples
A. Returnera den äldsta aktiva transaktionen
Följande exempel erhåller transaktionsinformation för den aktuella databasen. Resultaten kan variera.
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
Här är resultatet.
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.
Anmärkning
Resultatet "UID (användar-ID)" är meningslöst och kommer att tas bort i en framtida version av SQL Server.
B. Ange alternativet MED TABLERESULTS.
Följande exempel laddar in kommandots DBCC OPENTRAN resultat i en tillfällig tabell.
-- 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