DBCC INPUTBUFFER (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure 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 ]
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);