Ескерім
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Помогает определить активные транзакции, которые могут препятствовать усечению журнала.
DBCC OPENTRAN
отображает сведения о самой старой активной транзакции и старейших распределенных и нераспространенных реплицированных транзакциях( при наличии) в журнале транзакций указанной базы данных. Результаты отображаются только при наличии активной транзакции, которая приведена в журнале, или в случае, если в базе данных имеются сведения о репликации. Если в журнале нет активных транзакций, отображается информационное сообщение.
Примечание.
DBCC OPENTRAN
не поддерживается для издателей, отличных от SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DBCC OPENTRAN
[
( [ database_name | database_id | 0 ] )
{ [ WITH TABLERESULTS ]
[ , [ NO_INFOMSGS ] ]
}
]
Аргументы
database_name | database_id | 0
Имя или идентификатор базы данных, для которой отображаются самые старые сведения о транзакциях. Если значение не указано или указано значение 0, используется текущая база данных. Имена баз данных должны соответствовать правилам идентификаторов.
TABLERESULTS
Указывает, что результаты должны выводиться в табличном формате, чтобы их можно было загрузить в таблицу. Используйте этот параметр для создания таблицы результатов, которые могут быть вставлены в таблицу для сравнений. Если этот параметр не указан, результаты форматируются для удобства чтения.
NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
Замечания
Используется DBCC OPENTRAN
для определения того, существует ли открытая транзакция в журнале транзакций. При использовании BACKUP LOG
инструкции можно усечь только неактивную часть журнала. Открытая транзакция может предотвратить усечение журнала полностью. Чтобы определить открытую транзакцию, используйте sp_who
для получения идентификатора системного процесса.
Результирующие наборы
DBCC OPENTRAN
возвращает следующий результирующий набор, если открытых транзакций нет:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
Разрешения
Необходимо быть членом предопределенной роли сервера sysadmin или предопределенной роли базы данных db_owner .
Примеры
А. Возврат самой старой активной транзакции
В следующем примере сведения о транзакциях извлекаются для текущей базы данных. Полученные результаты могут отличаться от приведенных ниже.
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
Вот результирующий набор.
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.
Примечание.
Результат «UID (идентификатор пользователя)» не имеет смысла и будет удален в следующих версиях SQL Server.
B. Укажите параметр WITH TABLERESULTS
В следующем примере результаты DBCC OPENTRAN
команды загружаются во временную таблицу.
-- 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