DBCC INPUTBUFFER (Transact-SQL)
Применимо к:база данныхSQL Server Azure SQL Управляемый экземпляр SQL Azure
Отображает последнюю инструкцию, отправленную клиентом экземпляру SQL Server.
Соглашения о синтаксисе Transact-SQL
Синтаксис
DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]
Примечание
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
session_id
Идентификатор сеанса, связанный с каждым активным основным подключением.
request_id
Точный запрос (пакет) для поиска в текущем сеансе.
Аргумент request_id возвращается с помощью следующего запроса:
SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;
WITH
Позволяет задавать параметры.
NO_INFOMSGS
Подавляет все информационные сообщения со степенями серьезности от 0 до 10.
Наборы результатов
DBCC INPUTBUFFER
возвращает набор строк со следующими столбцами.
Имя столбца | Тип данных | Описание |
---|---|---|
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);