如果在指定數(shù)據(jù)庫內(nèi)存在最舊的活動事務(wù)和最舊的分布和非分布式復(fù)制事務(wù),則顯示與之相關(guān)的信息。只有當(dāng)存在活動事務(wù)或數(shù)據(jù)庫包含復(fù)制信息時,才顯示結(jié)果。如果沒有活動事務(wù),就顯示信息性消息。
DBCC OPENTRAN
( { 'database_name' | database_id} )
[ WITH TABLERESULTS
[ , NO_INFOMSGS ]
]
'database_name'
是顯示其中的最舊事務(wù)信息的數(shù)據(jù)庫名稱。數(shù)據(jù)庫名稱必須符合標(biāo)識符的規(guī)則。有關(guān)更多信息,請參見使用標(biāo)識符。
database_id
是要顯示其中的最舊事務(wù)信息的數(shù)據(jù)庫標(biāo)識 (ID) 號。通過使用 DB_ID 函數(shù)獲得數(shù)據(jù)庫 ID。
WITH TABLERESULTS
以報表形式指定結(jié)果以便可以裝載到表中。使用此選項創(chuàng)建結(jié)果表,可以將該結(jié)果表插入到表中以進(jìn)行比較。未指定此選項時,對結(jié)果進(jìn)行格式化以增加可讀性。
NO_INFOMSGS
禁止顯示所有信息性消息。
如果既沒有指定 database_name 也沒有指定 database_id,則默認(rèn)為當(dāng)前數(shù)據(jù)庫。
使用 DBCC OPENTRAN 確定打開的事務(wù)是否存在于日志中。使用 BACKUP LOG 語句時,只可以截斷日志的非活動部分;打開的事務(wù)可以導(dǎo)致日志不能完全地截斷。在 Microsoft® SQL Server™ 的早期版本中,若要清除日志中的未提交事務(wù),必須注銷所有用戶或關(guān)閉并重新啟動服務(wù)器。如有必要,可以使用 DBCC OPENTRAN 標(biāo)識并終止打開的事務(wù)(通過從 sp_who 輸出中獲得系統(tǒng)進(jìn)程 ID)。
如果沒有打開的事務(wù),DBCC OPENTRAN 顯示以下結(jié)果集:
No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.
DBCC OPENTRAN 權(quán)限默認(rèn)授予 sysadmin 固定服務(wù)器角色或 db_owner 固定數(shù)據(jù)庫角色的成員且不可轉(zhuǎn)讓。
下例獲得當(dāng)前數(shù)據(jù)庫和 pubs 數(shù)據(jù)庫的事務(wù)信息。
-- Display transaction information only for the current database.相關(guān)文章
DBCC OPENTRAN
GO
-- Display transaction information for the pubs database.
DBCC OPENTRAN('pubs')
GO