DBCC INPUTBUFFER (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Отображает последнюю инструкцию, отправляемую от клиента к экземпляру SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]
Аргументы
session_id
Идентификатор сеанса, связанный с каждым активным первичным подключением.
request_id
Точный запрос (пакет) для поиска в текущем сеансе.
Аргумент request_id возвращается с помощью следующего запроса:
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;
ВМЕСТЕ С
Позволяет задавать параметры.
NO_INFOMSGS
Подавляет все информационные сообщения со степенями серьезности от 0 до 10.
Результирующие наборы
DBCC INPUTBUFFER
возвращает набор строк со следующими столбцами.
Имя столбца | Тип данных | Description |
---|---|---|
EventType | nvarchar(30) | Тип события. Может быть RPC Event или Language Event. Если последние события не обнаружены, на выходе будет No Event. |
Параметры | smallint | 0 = Текст 1- n = параметры |
EventInfo | nvarchar(4000) | Если столбец EventType имеет значение RPC, столбец EventInfo содержит лишь имя процедуры. Для значения Language столбца EventType выводятся только первые 4000 символов события. |
Например, возвращает следующий результирующий набор при DBCC INPUTBUFFER
последнем событии в буфере 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.
Примечание.
Начиная с SQL Server 2014 (12.x) с пакетом обновления 2 (SP2) используйте sys.dm_exec_input_buffer для возврата сведений об инструкциях, отправленных в экземпляр SQL Server.
Разрешения
ДЛЯ SQL Server требуется разрешение VIEW SERVER STATE или членство в предопределенных ролях сервера sysadmin .
Без каких-либо из них пользователи могут просматривать только входной буфер собственного сеанса. Это означает, что значение session_id должно быть равно идентификатору сеанса, с которым выполняется команда. Чтобы определить идентификатор сеанса. Выполните следующий запрос:
SELECT @@spid;
для уровней База данных SQL Premium и критически важный для бизнеса требуется разрешение VIEW DATABASE STATE в базе данных. База данных SQL уровнях "Стандартный", "Базовый" и "Общего назначения" требуется учетная запись администратора База данных SQL.
Примеры
В следующем примере инструкция DBCC INPUTBUFFER
выполняется по второму соединению, в то время как по ранее установленному соединению выполняется длинная транзакция.
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);