Utilisation de PRINT

L'instruction PRINT sert à retourner des messages aux applications. Elle utilise comme paramètre une expression de chaîne de caractères ou Unicode et la retourne sous forme de messages à l'application. Le message est retourné en tant qu'erreur informative aux applications à l'aide de l'espace de noms SQLClient ou des API (Application Programming Interface) ADO (ActiveX Data Object), OLE DB et ODBC (Open DataBase Connectivity). SqlState a pour valeur 01000, l'erreur originale a pour valeur 0 et la chaîne du message d'erreur contient la chaîne de caractères indiquée dans l'instruction PRINT. La chaîne est retournée à la fonction de rappel du gestionnaire de messages dans les applications de la DB-Library.

L'instruction PRINT accepte toutes les expressions de chaîne de caractères, y compris une constante de type caractère ou Unicode, un nom de variable locale de type caractère ou Unicode ou une fonction qui retourne une chaîne de caractères ou de type Unicode. L'instruction PRINT accepte également les chaînes complexes construites par concaténation de plusieurs constantes, variables locales ou fonctions.

Utilisez PRINT pour résoudre des problèmes de code Transact-SQL, pour vérifier la valeur des données ou pour créer des rapports.

L'exemple suivant utilise PRINT dans une instruction IF pour retourner un message lorsque le nombre du produit Hex Nut 17 est inférieur à 1 100.

USE AdventureWorks;
GO
IF (SELECT SUM(i.Quantity)
    FROM Production.ProductInventory i
    JOIN Production.Product p 
    ON i.ProductID = p.ProductID
    WHERE Name = 'Hex Nut 17'
    ) < 1100
    PRINT N'There are less than 1100 units of Hex Nut 17 in stock.'
GO

L'exemple suivant permet d'imprimer la combinaison d'une variable locale, de fonctions système et d'une chaîne de texte en utilisant la concaténation.

USE AdventureWorks;
GO
DECLARE @MyObject NVARCHAR(257);

SET @MyObject = N'Production.Product';

PRINT N'Object Name: ' + @MyObject
PRINT N'   Object ID: ' + STR(OBJECT_ID(@MyObject))
GO

L'exemple suivant illustre deux méthodes de création d'un message d'impression par la concaténation de chaînes.

-- Build a print message by concatenating strings in a PRINT
-- statement.
PRINT N'The Database Engine instance '
    + RTRIM(@@SERVERNAME)
    + N' is running SQL Server build '
    + RTRIM(CAST(SERVERPROPERTY(N'ProductVersion ') AS NVARCHAR(128)));
GO
-- This shows building a character variable that is used to
-- print a message.
DECLARE @Msg NVARCHAR(300);

SELECT @Msg = N'The Database Engine instance '
    + RTRIM(@@SERVERNAME)
    + N' is running SQL Server build '
    + RTRIM(CAST(SERVERPROPERTY(N'ProductVersion') AS NVARCHAR(128)));

PRINT @Msg;
GO

Voir aussi

Concepts

Gestion des erreurs et des messages dans les applications
Utilisation de TRY...CATCH dans Transact-SQL
Utilisation de @@ERROR
Utilisation de RAISERROR

Autres ressources

PRINT (Transact-SQL)
Gestion des erreurs du moteur de base de données
sys.messages (Transact-SQL)

Aide et Informations

Assistance sur SQL Server 2005