DBCC INPUTBUFFER (Transact-SQL)
Zeigt die letzte Anweisung an, die von einem Client an eine Instanz von Microsoft SQL Server gesendet wurde.
Transact-SQL-Syntaxkonventionen
Syntax
DBCC INPUTBUFFER ( session_id [ , request_id ])
[WITH NO_INFOMSGS ]
Argumente
session_id
Die Sitzungs-ID, die jeweils einer aktiven primären Verbindung zugeordnet ist.request_id
Die genaue Anforderung (Batch), nach der innerhalb der aktuellen Sitzung gesucht werden soll.Die folgende Abfrage gibt request_id zurück:
SELECT request_id FROM sys.dm_exec_requests WHERE session_id = @@spid;
WITH
Aktiviert anzugebende Optionen.NO_INFOMSGS
Unterdrückt alle Informationsmeldungen, die einen Schweregrad von 0 bis 10 aufweisen.
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 Event sein. 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.
Berechtigungen
Eine der folgenden Bedingungen muss erfüllt sein:
Der Benutzer muss ein Mitglied der festen Serverrolle sysadmin sein.
Der Benutzer muss über die VIEW SERVER STATE-Berechtigung verfügen.
session_id muss mit der ID der Sitzung identisch sein, in der der Befehl ausgeführt wird. Führen Sie die folgende Abfrage aus, um die Sitzungs-ID zu bestimmen:
SELECT @@spid;
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 TRAN
SET @i = 0;
WHILE (@i < 100000)
BEGIN
INSERT INTO dbo.T1 VALUES (@i, CAST(@i AS char(3)));
SET @i += 1;
END;
COMMIT TRAN;
--Start new connection #2.
DBCC INPUTBUFFER (52);