DBCC INPUTBUFFER (Transact-SQL)
van toepassing op:SQL Server
Azure SQL Database
Azure 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
- DBCC (Transact-SQL)
- sp_who (Transact-SQL)
- sys.dm_exec_input_buffer (Transact-SQL)