Aracılığıyla paylaş


DBCC OPENTRAN (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Günlük kesilmesini engelleyebilecek etkin işlemlerin tanımlanmasına yardımcı olur. DBCC OPENTRAN, belirtilen veritabanının işlem günlüğünde en eski etkin işlem ve varsa en eski dağıtılmış ve dağıtılmamış çoğaltılmış işlemler hakkındaki bilgileri görüntüler. Sonuçlar yalnızca günlükte etkin bir işlem varsa veya veritabanı çoğaltma bilgileri içeriyorsa görüntülenir. Günlükte etkin bir işlem yoksa bilgilendiren bir ileti görüntülenir.

Not

sql server olmayan yayımcılar için DBCC OPENTRAN desteklenmez.

Transact-SQL söz dizimi kuralları

Sözdizimi

DBCC OPENTRAN
[
    ( [ database_name | database_id | 0 ] )
    { [ WITH TABLERESULTS ]
      [ , [ NO_INFOMSGS ] ]
    }
]

Bağımsız değişken

| database_namedatabase_id | 0

En eski işlem bilgilerinin görüntüleneceği veritabanının adı veya kimliği. Belirtilmezse veya 0 belirtilirse geçerli veritabanı kullanılır. Veritabanı adları tanımlayıcılarının kurallarına uymalıdır.

TABLERESULTS

Sonuçları tabloya yüklenebilen tablo biçiminde belirtir. Karşılaştırmalar için tabloya eklenebilen bir sonuç tablosu oluşturmak için bu seçeneği kullanın. Bu seçenek belirtilmediğinde, sonuçlar okunabilirlik için biçimlendirilir.

NO_INFOMSGS

Tüm bilgilendirme iletilerini gizler.

Açıklamalar

açık bir işlemin işlem günlüğünde mevcut olup olmadığını belirlemek için DBCC OPENTRAN kullanın. BACKUP LOG deyimini kullandığınızda, günlüğün yalnızca etkin olmayan bölümü kesilebilir; açık bir işlem günlüğün tamamen kesilmesini engelleyebilir. Açık bir işlemi tanımlamak için, oturum kimliğini elde etmek için kullanın sp_who .

Sonuç kümeleri

DBCC OPENTRAN, açık işlem olmadığında aşağıdaki sonuç kümesini döndürür:

No active open transactions.
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

İzinler

sysadmin sabit sunucu rolüne veya db_owner sabit veritabanı rolüne üyelik gerektirir.

Örnekler

A. En eski etkin işlemi iade et

Aşağıdaki örnek, geçerli veritabanı için işlem bilgilerini alır. Sonuçlar farklılık gösterebilir.

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

Sonuç kümesi aşağıdadır.

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.

Not

"UID (kullanıcı kimliği)" sonucu anlamsızdır ve SQL Server'ın gelecekteki bir sürümünde kaldırılacaktır.

B. WITH TABLERESULTS seçeneğini belirtin

Aşağıdaki örnek, DBCC OPENTRAN komutunun sonuçlarını geçici bir tabloya yükler.

-- 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