Udostępnij za pośrednictwem


DBCC INPUTBUFFER (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure 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);

Zobacz też