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, interface de programmation d'applications) ADO (ActiveX Data Objects), 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 AdventureWorks2008R2;
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 AdventureWorks2008R2;
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