Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Ajuda a identificar transações ativas que possam estar a impedir o truncamento dos logaritários.
DBCC OPENTRAN Mostra informações sobre a transação ativa mais antiga e as transações replicadas distribuídas e não distribuídas mais antigas, se existirem, dentro do registo de transações da base de dados especificada. Os resultados são exibidos apenas se existir uma transação ativa no registo ou se a base de dados contiver informação de replicação. Uma mensagem informativa é exibida se não houver transações ativas no registo.
Observação
DBCC OPENTRAN não é suportado para editoras que não sejam SQL Server.
Transact-SQL convenções de sintaxe
Sintaxe
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Arguments
| database_namedatabase_id | 0
O nome ou ID da base de dados para a qual deve ser exibida a informação de transação mais antiga. Se não for especificado, ou se 0 for especificado, o banco de dados atual será usado. Os nomes das bases de dados devem estar em conformidade com as regras relativas aos identificadores de .
RESULTADOS CLASSIFICADOS
Especifica os resultados num formato tabular que pode ser carregado numa tabela. Use esta opção para criar uma tabela de resultados que pode ser inserida numa tabela para comparações. Quando esta opção não é especificada, os resultados são formatados para legibilidade.
NO_INFOMSGS
Suprime todas as mensagens informativas.
Observações
Use DBCC OPENTRAN para determinar se existe uma transação aberta dentro do registo de transações. Quando usa a BACKUP LOG instrução, apenas a parte inativa do log pode ser truncada; uma transação aberta pode impedir que o log trunque completamente. Para identificar uma transação aberta, use sp_who para obter o ID da sessão.
Conjuntos de resultados
DBCC OPENTRAN devolve o seguinte conjunto de resultados quando não há transações abertas:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Permissions
Requer associação à função de servidor fixa sysadmin ou à função de banco de dados fixa db_owner.
Examples
A. Devolver a transação ativa mais antiga
O exemplo seguinte obtém informação de transações para a base de dados atual. Os resultados podem variar.
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
Aqui está o conjunto de resultados.
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.
Observação
O resultado "UID (ID de utilizador)" não tem significado e será removido numa versão futura do SQL Server.
B. Especifique a opção WITH TABLERESULTS
O exemplo seguinte carrega os resultados do DBCC OPENTRAN comando numa tabela temporária.
-- 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