Instruction PRINT dans Sql Server – Bien choisir son serveur d impression
Author: Titanfall —
Short summary: Dans SQL Server, l’instruction PRINT peut être utilisée pour renvoyer un message au client. Il prend une expression de chaîne en entrée et retourne une chaîne en tant que message à l'application. Dans le cas de SSMS, la sortie de l'instruction PRINT est renvoyée dans la fenêtre Messages et, dans le cas d'applications, la sortie […]
Quick overview
- Site
- Tutos GameServer
- Canonical URL
- https://tutos-gameserver.fr/2019/08/18/instruction-print-dans-sql-server-bien-choisir-son-serveur-d-impression/
- LLM HTML version
- https://tutos-gameserver.fr/2019/08/18/instruction-print-dans-sql-server-bien-choisir-son-serveur-d-impression/llm
- LLM JSON version
- https://tutos-gameserver.fr/2019/08/18/instruction-print-dans-sql-server-bien-choisir-son-serveur-d-impression/llm.json
- Manifest
- https://tutos-gameserver.fr/llm-endpoints-manifest.json
- Estimated reading time
- 7 minutes (380 seconds)
- Word count
- 1264
Key points
- Dans SQL Server, l’instruction PRINT peut être utilisée pour renvoyer un message au client.
- Il prend une expression de chaîne en entrée et retourne une chaîne en tant que message à l'application.
- Dans le cas de SSMS, la sortie de l'instruction PRINT est renvoyée dans la fenêtre Messages et, dans le cas d'applications, la sortie de l'instruction PRINT est renvoyée sous forme de message d'erreur informatif à l'application cliente.
- Fondamentalement, nous utilisons l'instruction PRINT pour résoudre le code en affichant le message ou en affichant une valeur de variable, etc.
Primary visual
Structured content
Dans SQL Server, l’instruction PRINT peut être utilisée pour renvoyer un message au client. Il prend une expression de chaîne en entrée et retourne une chaîne en tant que message à l'application. Dans le cas de SSMS, la sortie de l'instruction PRINT est renvoyée dans la fenêtre Messages et, dans le cas d'applications, la sortie de l'instruction PRINT est renvoyée sous forme de message d'erreur informatif à l'application cliente. Fondamentalement, nous utilisons l'instruction PRINT pour résoudre le code en affichant le message ou en affichant une valeur de variable, etc. Laissez-nous comprendre la déclaration PRINT avec une longue liste d'exemples Exemple 1: instruction PRINT imprimant / renvoyant un littéral de chaîne IMPRIMER 'Bonjour tout le monde!'
RÉSULTAT: Le résultat ci-dessus montre que, dans le cas de Sql Server Management Studio, la sortie de l'instruction PRINT est renvoyée à l'onglet Messages. [ALSO READ] Les messages d'instruction PRINT / SELECT au sein de WHILE LOOP ou BATCH de l'instruction ne sont pas affichés immédiatement après son exécution. Sql Server Exemple 2: instruction PRINT imprimant une valeur de variable Sql Server DECLARE @WelcomeMsg VARCHAR (100) = 'Bonjour tout le monde!' IMPRIMER @WelcomeMsg
RÉSULTAT: Exemple 3: instruction PRINT imprimant une sortie de fonction Imprimons la fonction intégrée GETDATE () valeur de retour IMPRIMER GETDATE ()
RÉSULTAT: Type de données d'entrée et de retour d'instruction PRINT L'entrée dans l'instruction PRINT peut être de type de données CHAR, NCHAR, VARCHAR ou NVARCHAR. Si l'entrée qui lui est transmise est autre que ces types de données spécifiés, il essaie de la convertir implicitement en l'un de ces types de données. Et si l'entrée est de type VARCHAR (MAX) ou NVARCHAR (MAX), elle est tronquée aux types de données VARCHAR (8000) ou NVARCHAR (4000). Le type de retour de l'instruction PRINT est VARCHAR ou NVARCHAR, selon le type de l'entrée. Exemple 4: Conversion de type de données implicite et explicite dans une instruction PRINT Comme expliqué ci-dessus, l'instruction PRINT attend une entrée de chaîne. Si un autre type de données est transmis, il essaiera d'effectuer la conversion implicite du type de données. Laissez-nous comprendre cela avec quelques exemples: Exemple 4.1: instruction PRINT affichant la valeur d'une variable entière DÉCLARE @ I INT = 100 IMPRIMER @I
RÉSULTAT: Le résultat ci-dessus montre que la valeur de la variable entière transmise à l'instruction PRINT est convertie de manière implicite. Exemple 4.2: Valeur de la variable de type XML d'impression des instructions PRINT DECLARE @value XML = '' PRINT @value
RÉSULTAT: Msg 257, niveau 16, état 3, ligne 2La conversion implicite du type de données xml en nvarchar n'est pas autorisée. Utilisez la fonction CONVERT pour exécuter cette requête. Le résultat ci-dessus montre que la conversion implicite des variables de type XML en type NVARCHAR a échoué. Pour résoudre ce problème, nous pouvons convertir explicitement le type XML en VarChar et passer à l'instruction PRINT. DECLARE @value XML = '' PRINT CAST (@value AS VARCHAR (50))
RÉSULTAT: D'après le résultat ci-dessus, il est clair que l'entrée dans l'instruction PRINT doit être de type de données CHAR, NCHAR, VARCHAR ou NVARCHAR. Si l'entrée qui lui est transmise est autre que ces types de données spécifiés, il essaie de la convertir implicitement en l'un de ces types de données. Exemple 5: Instruction PRINT imprimant le résultat concaténé de la valeur littérale de chaîne et de la valeur de variable entière DÉCLARE @ I INT = 100 IMPRIMER 'Numéro actuel:' + @I
RÉSULTAT: Msg 245, Niveau 16, Etat 1, Ligne 2La conversion a échoué lors de la conversion de la valeur varchar ‘Current Number:’ en type de données int. Le résultat ci-dessus montre que, dans ce cas, Sql Server tente de convertir la valeur littérale de chaîne ‘Current Number:’ en un type entier (c’est-à-dire que le type de la variable @I), car celui-ci a une priorité plus élevée que le type VarChar. Pour résoudre ce problème, nous pouvons convertir explicitement la valeur de la variable entière @I en type VARCHAR, comme indiqué ci-dessous, en utilisant l'instruction CAST: DÉCLARE @ I INT = 100 PRINT 'Numéro actuel:' + CAST (@I AS VARCHAR (10))
RÉSULTAT: Dans Sql Server 2012, nous avons la fonction CONCAT qui se charge de convertir l’entrée au format correct, puis de concaténer et de renvoyer une sortie de chaîne. Nous pouvons réécrire le script ci-dessus en utilisant la fonction CONCAT comme ci-dessous: DÉCLARE @ I INT = 100 IMPRIMER CONCAT ('Numéro actuel:', @ I)
RÉSULTAT: Exemple 6: NULL dans l'instruction PRINT Exemple 6.1: NULL en tant qu'entrée dans l'instruction PRINT IMPRIMER NULL
RÉSULTAT: Le résultat ci-dessus montre que l’instruction PRINT n’imprime pas la valeur NULL. Exemple 6.2: Instruction PRINT avec une expression chaîne qui est une concaténation de littéral chaîne et une variable dont la valeur est NULL DÉCLARE @Name NVarChar (50) IMPRIMER 'Bienvenue' + @Nom
RÉSULTAT: Le résultat ci-dessus montre que l’instruction PRINT n’affiche aucune valeur, car la concaténation du littéral chaîne «Welcome» et de la variable @Name dont la valeur est NULL (car elle n’a pas été initialisée) a pour résultat NULL. Comment lire une instruction PRINT dans le code .NET La sortie de l'instruction PRINT est renvoyée sous forme de message d'erreur d'information à l'application cliente. Il n'est pas renvoyé en tant qu'exception régulière. Il est renvoyé sous forme de message d'erreur d'informations avec une gravité inférieure ou égale à 10. Pour lire les messages d'informations renvoyés par l'instruction PRINT ou l'instruction RAISERROR avec une gravité inférieure ou égale à 10, nous pouvons ajouter Méthode déléguée du gestionnaire d'événements à l'événement InfoMessage de l'objet de connexion dans le code ADO.NET C # SqlConnection conn = new SqlConnection (ConnectionString); conn.InfoMessage + = new SqlInfoMessageEventHandler (ProcessInformationalMessage); Et ci-dessous se trouve l'exemple de code de la méthode Delegate ProcessInformationalMessage qui écrit la sortie de l'instruction PRINT sur la console:
protégé Void statique ProcessInformationalMessage ( expéditeur de l'objet, arguments SqlInfoMessageEventArgs)
foreach (erreur SqlError dans args.Errors) Console.WriteLine ('Numéro d'erreur 0, Ligne d'erreur 1, Message d'erreur 2', err.Number, err.LineNumber, err.Message);
Dans une procédure stockée ou un script long, si vous avez ajouté plusieurs instructions PRINT pour connaître la progression de l'exécution du script. Ensuite, à votre grande surprise, vous ne verrez généralement pas ces messages avant la fin de l'exécution de la procédure. La raison est que le serveur SQL met en mémoire tampon la sortie de l'instruction PRINT et l'envoie au client une fois que la taille du paquet TDS est de 4 Ko. Si vous souhaitez envoyer instantanément la sortie de l'instruction PRINT au client, vous pouvez utiliser l'instruction RAISERROR avec NO WAIT, comme expliqué dans l'article ci-dessous: Les messages d'instruction PRINT / SELECT au sein de WHILE LOOP ou BATCH de l'instruction ne sont pas affichés immédiatement après son exécution. Sql Server
Click to rate this post! [Total: 0 Average: 0]
Topics and keywords
Themes: Serveur d'impression
License & attribution
License: CC BY-ND 4.0.
Attribution required: yes.
Manifest: https://tutos-gameserver.fr/llm-endpoints-manifest.json
LLM Endpoints plugin version 1.1.2.