Delen via


DBCC INPUTBUFFER (Transact-SQL)

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Geeft de laatste instructie weer die van een client naar een exemplaar van SQL Server is verzonden.

Transact-SQL syntaxisconventies

Syntaxis

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

Argumenten

session_id

De sessie-id die is gekoppeld aan elke actieve primaire verbinding.

request_id

De exacte aanvraag (batch) om te zoeken binnen de huidige sessie.

De volgende query retourneert request_id:

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

MET

Hiermee kunt u opties opgeven.

  • NO_INFOMSGS

    Onderdrukt alle informatieve berichten met ernstniveaus van 0 tot en met 10.

Resultatensets

DBCC INPUTBUFFER retourneert een rijset met de volgende kolommen.

Kolomnaam Gegevenstype Beschrijving
EventType- nvarchar(30) Gebeurtenistype. Dit kan RPC Event of Language Eventzijn. De uitvoer wordt Geen gebeurtenis wanneer er geen laatste gebeurtenis is gedetecteerd.
parameters kleine 0 = Tekst

1- n = Parameters
EventInfo- nvarchar(4000) Voor een EventType- van RPC bevat EventInfo alleen de naam van de procedure. Voor een EventType taal worden alleen de eerste 4000 tekens van de gebeurtenis weergegeven.

DBCC INPUTBUFFER retourneert bijvoorbeeld de volgende resultatenset wanneer de laatste gebeurtenis in de buffer is 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.

Notitie

Vanaf SQL Server 2014 (12.x) SP2 gebruikt u sys.dm_exec_input_buffer om informatie te retourneren over instructies die zijn verzonden naar een exemplaar van SQL Server.

Machtigingen

SQL Server vereist de machtiging VIEW SERVER STATE of lidmaatschap van de sysadmin vaste serverfunctie.

Zonder een van deze kunnen gebruikers alleen de invoerbuffer van hun eigen sessie bekijken. Dit betekent dat de session_id hetzelfde moet zijn als de sessie-id waarop de opdracht wordt uitgevoerd. Voer de volgende query uit om de sessie-id te bepalen:

SELECT @@spid;

Voor SQL Database Premium- en Bedrijfskritieke lagen is de machtiging VIEW DATABASE STATE in de database vereist. Voor de lagen SQL Database Standard, Basic en Algemeen gebruik is het SQL Database-beheerdersaccount vereist.

Voorbeelden

In het volgende voorbeeld wordt DBCC INPUTBUFFER uitgevoerd op een tweede verbinding terwijl een lange transactie wordt uitgevoerd op een eerdere verbinding.

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

Zie ook