Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo articolo
Si applica a:SQL Server
Database SQL di Azure
Istanza gestita di SQL di Azure
Consente di identificare le transazioni attive che potrebbero impedire il troncamento del log.
DBCC OPENTRAN
visualizza informazioni sulla transazione attiva meno recente e sulle transazioni replicate distribuite e non distribuite meno recenti, se presenti, all'interno del log delle transazioni del database specificato. I risultati vengono visualizzati solo se nel log è presente una transazione attiva o se il database contiene informazioni di replica. In assenza di transazioni attive nel log, viene visualizzato un messaggio informativo.
Nota
DBCC OPENTRAN
non è supportato per server di pubblicazione non SQL Server.
Convenzioni relative alla sintassi Transact-SQL
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Nome o ID del database per cui visualizzare le informazioni sulle transazioni meno recenti. Se questo argomento viene omesso oppure se viene specificato il valore 0, viene utilizzato il database corrente. I nomi dei database devono essere conformi alle regole per gli identificatori.
Specifica i risultati in un formato tabulare caricabile in una tabella. Utilizzare questa opzione per creare una tabella di risultati che è possibile inserire in una tabella per l'esecuzione di confronti. Quando questa opzione non è specificata, i risultati vengono formattati per la leggibilità.
Disattiva tutti i messaggi informativi.
Utilizzare DBCC OPENTRAN
per determinare se esiste una transazione aperta all'interno del log delle transazioni. Quando si usa l'istruzione BACKUP LOG
, è possibile troncare solo la parte inattiva del log. Una transazione aperta può impedire il troncamento completo del log. Per identificare una transazione aperta, usare sp_who
per ottenere l'ID del processo di sistema.
DBCC OPENTRAN
restituisce il set di risultati seguente quando non sono presenti transazioni aperte:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
È richiesta l'appartenenza al ruolo predefinito del server sysadmin o al ruolo predefinito del database db_owner .
Nell'esempio seguente vengono recuperate le informazioni sulle transazioni per il database corrente. I risultati possono variare.
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
Il set di risultati è il seguente.
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.
Nota
Il risultato di "UID (ID utente)" non è significativo e sarà rimosso in una prossima versione di SQL Server.
Nell'esempio seguente vengono caricati i risultati del DBCC OPENTRAN
comando in una tabella temporanea.
-- 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