DBCC INPUTBUFFER (Transact-SQL)
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Wyświetla ostatnią instrukcję wysłaną z klienta do wystąpienia programu SQL Server.
Transact-SQL konwencje składni
Składnia
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]
Argumenty
session_id
Identyfikator sesji skojarzony z każdym aktywnym połączeniem podstawowym.
request_id
Dokładne żądanie (wsadowe) do wyszukania w bieżącej sesji.
Następujące zapytanie zwraca request_id:
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;
Z
Umożliwia określenie opcji.
NO_INFOMSGS
Pomija wszystkie komunikaty informacyjne, które mają poziomy ważności od 0 do 10.
Zestawy wyników
DBCC INPUTBUFFER
zwraca zestaw wierszy z następującymi kolumnami.
Nazwa kolumny | Typ danych | Opis |
---|---|---|
EventType | nvarchar(30) | Typ zdarzenia. Może to być zdarzeń RPC lub zdarzenia języka . Dane wyjściowe będą brak zdarzeń po wykryciu ostatniego zdarzenia. |
parametrów | smallint | 0 = tekst 1— n = parametry |
EventInfo | nvarchar(4000) | W przypadku EventType RPC EventInfo zawiera tylko nazwę procedury. W przypadku EventType języka wyświetlane są tylko pierwsze 4000 znaków zdarzenia. |
Na przykład DBCC INPUTBUFFER
zwraca następujący zestaw wyników, gdy ostatnie zdarzenie w buforze jest 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.
Nuta
Począwszy od programu SQL Server 2014 (12.x) SP2, użyj sys.dm_exec_input_buffer, aby zwrócić informacje o instrukcjach przesłanych do wystąpienia programu SQL Server.
Uprawnienia
Program SQL Server wymaga uprawnień VIEW SERVER STATE lub członkostwa w sysadmin stałej roli serwera.
Bez żadnego z nich użytkownicy mogą wyświetlać tylko bufor wejściowy własnej sesji. Oznacza to, że session_id musi być taka sama jak identyfikator sesji, na której jest uruchamiane polecenie. Aby określić identyfikator sesji. Wykonaj następujące zapytanie:
SELECT @@spid;
Warstwy Premium i Krytyczne dla działania firmy usługi SQL Database wymagają uprawnień VIEW DATABASE STATE w bazie danych. Warstwy Standardowa, Podstawowa i Ogólnego przeznaczenia usługi SQL Database wymagają konta administratora usługi SQL Database.
Przykłady
Poniższy przykład uruchamia DBCC INPUTBUFFER
na drugim połączeniu, podczas gdy długa transakcja jest uruchomiona na poprzednim połączeniu.
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);