다음을 통해 공유


DBCC INPUTBUFFER(Transact-SQL)

적용 대상: SQL Server Azure SQL 데이터베이스 Azure SQL Managed Instance

클라이언트에서 SQL Server 인스턴스로 전송한 마지막 문을 표시합니다.

Transact-SQL 구문 표기 규칙

구문

DBCC INPUTBUFFER ( session_id [ , request_id ] )
[ WITH NO_INFOMSGS ]

인수

session_id

각 기본 활성 연결과 연관된 세션 ID입니다.

request_id

현재 세션 내에서 검색할 정확한 요청(일괄 처리)입니다.

다음 쿼리에서는 request_id를 반환합니다.

SELECT request_id
FROM sys.dm_exec_requests
WHERE session_id = @@spid;

WITH

지정할 옵션을 설정합니다.

  • NO_INFOMSGS

    심각도가 0에서 10 사이인 모든 정보 메시지를 표시하지 않습니다.

결과 집합

DBCC INPUTBUFFER는 다음 열이 있는 행 집합을 반환합니다.

열 이름 데이터 형식 Description
EventType nvarchar(30) 이벤트 유형입니다. RPC Event 또는 Language Event를 사용할 수 있습니다. 마지막 이벤트가 감지되지 않으면 No Event가 출력됩니다.
매개 변수 smallint 0 = 텍스트

1- n = 매개 변수
EventInfo nvarchar(4000) RPC의 EventType에서는 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) SP2로 시작되며, sys.dm_exec_input_buffer를 사용하여 SQL Server의 인스턴스에 제출된 문에 대한 정보를 반환합니다.

사용 권한

SQL Server에서는 VIEW SERVER STATE 권한 또는 sysadmin 고정 서버 역할의 멤버 자격이 필요합니다.

이들 모두가 없으면 사용자는 자체 세션의 입력 버퍼만 볼 수 있습니다. 즉 session_id는 명령이 실행되는 세션 ID와 같아야 합니다. 세션 ID를 확인하려면 다음 쿼리를 실행합니다.

SELECT @@spid;

SQL Database 프리미엄 및 중요 비즈니스용 계층에서는 데이터베이스의 VIEW DATABASE STATE 권한이 필요합니다. SQL Database 표준, 기본 및 범용 계층에서는 SQL Database 관리자 계정이 필요합니다.

예제

다음 예에서는 이전 연결에서 긴 트랜잭션이 실행되는 동안 두 번째 연결에서 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);

추가 정보