Dela via


DBCC INPUTBUFFER (Transact-SQL)

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Visar den senaste instruktionen som skickades från en klient till en instans av SQL Server.

Transact-SQL syntaxkonventioner

Syntax

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

Argument

session_id

Sessions-ID:t som är associerat med varje aktiv primär anslutning.

request_id

Den exakta begäran (batch) som ska sökas efter i den aktuella sessionen.

Följande fråga returnerar request_id:

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

MED

Aktiverar alternativ som ska anges.

  • NO_INFOMSGS

    Undertrycker alla informationsmeddelanden som har allvarlighetsgrad mellan 0 och 10.

Resultatuppsättningar

DBCC INPUTBUFFER returnerar en raduppsättning med följande kolumner.

Kolumnnamn Datatyp Beskrivning
EventType nvarchar(30) Händelsetyp. Detta kan vara RPC Event eller Language Event. Utdata kommer att Ingen händelse när ingen senaste händelse identifierades.
parametrar liten 0 = Text

1– n = Parametrar
EventInfo nvarchar(4000) För en EventType- av RPC innehåller EventInfo endast procedurnamnet. För en EventType- av Language visas endast de första 4 000 tecknen i händelsen.

Till exempel returnerar DBCC INPUTBUFFER följande resultatuppsättning när den sista händelsen i bufferten 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.

Not

Från och med SQL Server 2014 (12.x) SP2 använder du sys.dm_exec_input_buffer för att returnera information om instruktioner som skickas till en instans av SQL Server.

Behörigheter

SQL Server kräver behörigheten VIEW SERVER STATE eller medlemskap i sysadmin fast serverroll.

Utan något av dessa kan användarna bara visa indatabufferten för sin egen session. Det innebär att session_id måste vara samma som sessions-ID:t som kommandot körs på. För att fastställa sessions-ID:t kör du följande fråga:

SELECT @@spid;

SQL Database Premium- och Affärskritiska nivåer kräver behörigheten VIEW DATABASE STATE i databasen. SQL Database Standard-, Basic- och General Purpose-nivåerna kräver SQL Database-administratörskontot.

Exempel

I följande exempel körs DBCC INPUTBUFFER på en andra anslutning medan en lång transaktion körs på en tidigare anslutning.

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

Se även