DBCC OPENTRAN (Transact-SQL)
platí pro:SQL Server
Azure SQL Database
azure SQL Managed Instance
Pomáhá identifikovat aktivní transakce, které mohou bránit zkrácení protokolu.
DBCC OPENTRAN
zobrazí informace o nejstarší aktivní transakci a nejstarší distribuované a nedistributované replikované transakce, pokud existuje, v transakčním protokolu zadané databáze. Výsledky se zobrazí pouze v případě, že v protokolu existuje aktivní transakce nebo pokud databáze obsahuje informace o replikaci. Informační zpráva se zobrazí, pokud v protokolu nejsou žádné aktivní transakce.
Poznámka
DBCC OPENTRAN
se nepodporuje pro vydavatele sql Serveru.
Syntax
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Argumenty
database_name | database_id | 0
Název nebo ID databáze, pro kterou chcete zobrazit nejstarší informace o transakci. Pokud není zadána nebo pokud je zadána hodnota 0, použije se aktuální databáze. Názvy databází musí splňovat pravidla pro identifikátory .
TABLERESULTS
Určuje výsledky v tabulkovém formátu, který lze načíst do tabulky. Tato možnost slouží k vytvoření tabulky výsledků, které lze vložit do tabulky pro porovnání. Pokud tato možnost není zadaná, výsledky se naformátují tak, aby byly čitelné.
NO_INFOMSGS
Potlačí všechny informační zprávy.
Poznámky
Pomocí DBCC OPENTRAN
určete, zda v transakčním protokolu existuje otevřená transakce. Pokud použijete příkaz BACKUP LOG
, může být zkrácena pouze neaktivní část protokolu; otevřená transakce může zabránit úplnému zkrácení protokolu. Chcete-li identifikovat otevřenou transakci, použijte sp_who
k získání ID systémového procesu.
Sady výsledků
DBCC OPENTRAN
vrátí následující sadu výsledků, pokud neexistují žádné otevřené transakce:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Dovolení
Vyžaduje členství v pevné roli serveru nebo db_owner pevné databázové roli.
Příklady
A. Vrácení nejstarší aktivní transakce
Následující příklad získá informace o transakci pro aktuální databázi. Výsledky se mohou lišit.
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
Tady je sada výsledků.
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.
Poznámka
Výsledek UID (ID uživatele) je bezvýznamný a bude odebrán v budoucí verzi SQL Serveru.
B. Zadání možnosti WITH TABLERESULTS
Následující příklad načte výsledky příkazu DBCC OPENTRAN
do dočasné tabulky.
-- 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
Související obsah
- sys.dm_tran_database_transactions (Transact-SQL)
- BEGIN TRANSACTION (Transact-SQL)
- transakce potvrzení (Transact-SQL)
- DBCC (Transact-SQL)
- DB_ID (Transact-SQL)
- transakce vrácení zpět (Transact-SQL)