DBCC INPUTBUFFER (Transact-SQL)
gäller för:SQL Server
Azure SQL Database
Azure 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);