DBCC INPUTBUFFER (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Zeigt die letzte Anweisung an, die von einem Client an eine Instanz von SQL Server gesendet wurde.

Transact-SQL-Syntaxkonventionen

Syntax

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

Hinweis

Informationen zum Anzeigen der Transact-SQL-Syntax für SQL Server 2014 oder früher finden Sie unter Dokumentation zu früheren Versionen.

Argumente

session_id

Die Sitzungs-ID, die jeweils einer aktiven primären Verbindung zugeordnet ist

request_id

Die genaue Anforderung (Batch), nach der in der aktuellen Sitzung gesucht werden soll.

Die folgende Abfrage gibt request_idzurück:

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

WITH

Aktiviert anzugebende Optionen.

  • NO_INFOMSGS

    Unterdrückt alle Informationsmeldungen mit einem Schweregrad von 0 bis 10.

Resultsets

DBCC INPUTBUFFER gibt ein Rowset mit folgenden Spalten zurück.

Spaltenname Datentyp BESCHREIBUNG
EventType nvarchar(30) Der Ereignistyp. Dies kann RPC Event oder Language Eventsein. Wurde kein letztes Ereignis erkannt, wird No Event ausgegeben.
Parameter smallint 0 = Text

1- n = Parameter
EventInfo nvarchar(4000) Wenn EventType gleich RPC, enthält EventInfo nur den Namen der Prozedur. Wenn EventType gleich Language, werden nur die ersten 4000 Zeichen des Ereignisses angezeigt.

Beispielsweise gibt DBCC INPUTBUFFER das folgende Resultset zurück, wenn das letzte Ereignis im Puffer DBCC INPUTBUFFER (11) war:

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.

Hinweis

Verwenden Sie ab SQL Server 2014 (12.x) SP2 sys.dm_exec_input_buffer, um Informationen zu Anweisungen zurückzugeben, die an eine Instanz von SQL Server gesendet werden.

Berechtigungen

In SQL Server wird die Berechtigung VIEW SERVER STATE oder die Mitgliedschaft in der festen Serverrolle sysadmin benötigt.

Ohne eine dieser Berechtigungen können Benutzer*innen nur den Eingabepuffer ihrer eigenen Sitzung anzeigen. Dies bedeutet, dass session_id mit der ID der Sitzung übereinstimmen muss, in der der Befehl ausgeführt wird. Führen Sie die folgende Abfrage aus, um die Sitzungs-ID zu bestimmen:

SELECT @@spid;

In SQL-Datenbank Premium-Tarifen und unternehmenskritischen Tarifen ist die VIEW DATABASE STATE-Berechtigung für die Datenbank erforderlich. Für die SQL-Datenbank-Tarife „Standard“, „Basic“ und „Universell“ ist das SQL-Datenbank-Administratorkonto erforderlich.

Beispiele

Im folgenden Beispiel wird DBCC INPUTBUFFER auf einer zweiten Verbindung ausgeführt, während eine vorherige Verbindung durch die Ausführung einer langwierigen Transaktion beansprucht wird.

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

Weitere Informationen