Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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