Megosztás a következőn keresztül:


DBCC OPENTRAN (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Segít azonosítani azokat az aktív tranzakciókat, amelyek megakadályozhatják a napló csonkolását. DBCC OPENTRAN megjeleníti a legrégebbi aktív tranzakcióra, valamint a legrégebbi elosztott és nem disztributált replikált tranzakciókra vonatkozó információkat, ha vannak ilyenek, a megadott adatbázis tranzakciónaplójában. Az eredmények csak akkor jelennek meg, ha a naplóban aktív tranzakció található, vagy ha az adatbázis replikációs adatokat tartalmaz. Egy tájékoztató üzenet jelenik meg, ha nincsenek aktív tranzakciók a naplóban.

Jegyzet

DBCC OPENTRAN nem sql server közzétevők esetén nem támogatott.

Transact-SQL szintaxis konvenciói

Szintaxis

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

Érvek

| database_namedatabase_id | 0

Annak az adatbázisnak a neve vagy azonosítója, amelynek a legrégebbi tranzakciós adatait szeretné megjeleníteni. Ha nincs megadva, vagy ha 0 van megadva, a rendszer az aktuális adatbázist használja. Az adatbázisneveknek meg kell felelniük azonosítókszabályainak.

TABLERESULTS

Táblázatos formátumban adja meg az eredményeket, amelyek betölthetők egy táblába. Ezzel a beállítással olyan eredménytáblát hozhat létre, amely összehasonlítás céljából beszúrható egy táblába. Ha ez a beállítás nincs megadva, az eredmények olvashatóságra vannak formázva.

NO_INFOMSGS

Letiltja az összes tájékoztató üzenetet.

Megjegyzések

A DBCC OPENTRAN használatával állapítsa meg, hogy létezik-e nyitott tranzakció a tranzakciónaplóban. A BACKUP LOG utasítás használatakor csak a napló inaktív része csonkolt; egy nyitott tranzakció megakadályozhatja a napló teljes csonkolását. Egy nyitott tranzakció azonosításához használjuk sp_who a session ID-t a használatra.

Eredményhalmazok

DBCC OPENTRAN a következő eredményhalmazt adja vissza, ha nincsenek nyitott tranzakciók:

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

Engedélyek

A sysadmin rögzített kiszolgálói szerepkörben vagy a db_owner rögzített adatbázis-szerepkörben való tagság szükséges.

Példák

Egy. A legrégebbi aktív tranzakció visszaadása

Az alábbi példa az aktuális adatbázis tranzakciós adatait kéri le. Az eredmények eltérőek lehetnek.

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

Itt van az eredményhalmaz.

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.

Jegyzet

A "UID (felhasználói azonosító)" eredmény értelmetlen, és az SQL Server egy későbbi verziójában el lesz távolítva.

B. A WITH TABLERESULTS beállítás megadása

Az alábbi példa betölti a DBCC OPENTRAN parancs eredményeit egy ideiglenes táblába.

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