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


DBCC INPUTBUFFER (Transact-SQL)

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

Megjeleníti az ügyféltől az SQL Server egy példányának küldött utolsó utasítást.

Transact-SQL szintaxis konvenciói

Szintaxis

DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]

Érvek

session_id

Az egyes aktív elsődleges kapcsolatokhoz társított munkamenet-azonosító.

request_id

Az aktuális munkameneten belüli keresés pontos kérése (köteg).

A következő lekérdezés request_idad vissza:

SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;

VAL

Engedélyezi a beállítások megadását.

  • NO_INFOMSGS

    Letiltja a 0 és 10 közötti súlyossági szintű információs üzeneteket.

Eredményhalmazok

DBCC INPUTBUFFER a következő oszlopokkal rendelkező sorkészletet adja vissza.

Oszlop neve Adattípus Leírás
EventType nvarchar(30) Esemény típusa. Ez lehet RPC-esemény vagy nyelvi esemény. A kimenet Nincs esemény, ha nem észleltek utolsó eseményt.
paraméterek kis 0 = Szöveg

1– n = Paraméterek
EventInfo nvarchar(4000) Az RPC EventType esetén EventInfo csak az eljárás nevét tartalmazza. A nyelv EventType esetén csak az esemény első 4000 karaktere jelenik meg.

Például DBCC INPUTBUFFER a következő eredményhalmazt adja vissza, ha a puffer utolsó eseménye DBCC INPUTBUFFER (11).

EventType      Parameters EventInfo
-------------- ---------- ---------------------
Language Event 0          DBCC INPUTBUFFER (11)
  
(1 row(s) affected)
  
DBCC execution completed. If DBCC printed error messages, contact your system administrator.

Jegyzet

Az SQL Server 2014 (12.x) SP2-től kezdve a sys.dm_exec_input_buffer használatával adja vissza az SQL Server egy példányának küldött utasítások adatait.

Engedélyek

Az SQL Serverhez VIEW SERVER STATE engedélyre vagy tagságra van szükség a sysadmin rögzített kiszolgálói szerepkörben.

Ezek nélkül a felhasználók csak a saját munkamenetük bemeneti pufferét tekinthetik meg. Ez azt jelenti, hogy a session_id meg kell egyeznie azzal a munkamenet-azonosítóval, amelyen a parancs fut. A munkamenet-azonosító meghatározásához hajtsa végre a következő lekérdezést:

SELECT @@spid;

Az SQL Database Prémium és Üzleti szempontból kritikus szintjeihez ADATBÁZIS ÁLLAPOTának megtekintése engedélyre van szükség az adatbázisban. Az SQL Database Standard, az Alapszintű és az Általános célú szintekhez az SQL Database rendszergazdai fiókja szükséges.

Példák

Az alábbi példa DBCC INPUTBUFFER fut egy második kapcsolaton, miközben egy hosszú tranzakció fut egy korábbi kapcsolaton.

CREATE TABLE dbo.T1 (Col1 INT, Col2 CHAR(3));
GO

DECLARE @i INT = 0;

BEGIN TRANSACTION

SET @i = 0;

WHILE (@i < 100000)
BEGIN
    INSERT INTO dbo.T1
    VALUES (@i, CAST(@i AS CHAR(3)));
    SET @i += 1;
END;

COMMIT TRANSACTION;

--Start new connection #2.
DBCC INPUTBUFFER (52);

Lásd még: