DBCC INPUTBUFFER (Transact-SQL)
S’applique à :SQL ServerAzure SQL DatabaseAzure 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 ]
Notes
Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 et versions antérieures, consultez Versions antérieures de la documentation.
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);