DBCC INPUTBUFFER (Transact-SQL)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance

Affiche la dernière instruction envoyée par un client à une instance de SQL Server.

Conventions de la syntaxe Transact-SQL

Syntaxe

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

Arguments

session_id

ID de session associé à chaque connexion principale active.

request_id

Demande exacte (par lot) à rechercher dans la session active.

La requête suivante retourne request_id :

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

WITH

Permet de spécifier des options.

  • NO_INFOMSGS

    Supprime tous les messages d'information dont les niveaux de gravité sont compris entre 0 et 10.

Jeux de résultats

DBCC INPUTBUFFER retourne un ensemble de lignes comportant les colonnes suivantes.

Nom de la colonne Type de données Description
EventType nvarchar(30) Type d'événement. Il peut s’agir d’un événement RPC ou d’un événement de langage. La sortie correspond à Aucun événement quand aucun dernier événement n’a été détecté.
Paramètres smallint 0 = texte

1- n = Paramètres
EventInfo nvarchar(4000) Pour un EventType de type RPC, EventInfo contient uniquement le nom de la procédure. Pour un EventType de type langage, seuls les 4 000 premiers caractères de l’événement sont affichés.

Par exemple, DBCC INPUTBUFFER retourne le jeu de résultats suivant lorsque le dernier événement dans le tampon est 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.

Notes

À compter de SQL Server 2014 (12.x) SP2, utilisez sys.dm_exec_input_buffer pour retourner des informations sur les instructions envoyées à une instance de SQL Server.

Autorisations

SQL Server requiert l’autorisation VIEW SERVER STATE, ou l’appartenance au rôle serveur fixe sysadmin.

Sans cela, les utilisateurs peuvent uniquement voir le tampon d’entrée de leur propre session. Cela signifie que l’argument session_id doit être identique à l’ID de session avec lequel la commande est exécutée. Pour déterminer l'ID de session, exécutez la requête suivante :

SELECT @@spid;

Les niveaux SQL Database Premium et Critique pour l’entreprise requièrent l’autorisation VIEW DATABASE STATE dans la base de données. Les niveaux SQL Database Standard, De base et Usage général requièrent le compte administrateur SQL Database.

Exemples

L'exemple suivant exécute DBCC INPUTBUFFER sur une seconde connexion tandis qu'une longue transaction est en cours d'exécution sur une connexion précédente.

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);

Voir aussi