{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/","llm_html_url":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/llm","llm_json_url":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"Instructions SQL Server PRINT et SQL Server RAISERROR\n\n &#8211; Serveur d&rsquo;impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2020-01-14T04:01:55+00:00","modified_at":"2020-01-14T04:01:55+00:00","word_count":1983,"reading_time_seconds":595,"summary":"Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer messages dans une requête. introduction Supposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#39;instruction SQL [&hellip;]","summary_points":["Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête.","introduction\nSupposons que vous exécutiez une requête en plusieurs étapes.","Nous voulons recevoir un message une fois chaque étape terminée.","Il permet de suivre la progression de la requête."],"topics":["Serveur d'impression"],"entities":[],"entities_metadata":[{"id":10,"name":"Serveur d'impression","slug":"serveur-dimpression","taxonomy":"category","count":3907,"url":"https://tutos-gameserver.fr/category/serveur-dimpression/"}],"tags":["Serveur d'impression"],"content_hash":"e449bfae9a82507b49f757a7dd4d69b5","plain_text":"Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête.\n\nintroduction\nSupposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#39;instruction SQL PRINT pour imprimer les messages correspondants ou suivre les valeurs des variables pendant la progression de la requête.\nNous utilisons également des interactions ou plusieurs boucles dans une requête avec un certain temps ou pour une boucle. Nous pouvons également utiliser le SQL PRINT\npour suivre l&#39;itération.\nNous utilisons l&#39;instruction SQL Server PRINT pour renvoyer des messages au client. Nous spécifions le message comme entrée d&#39;expressions de chaîne. SQL Server renvoie le message à l&#39;application.\nDans cet article, nous allons explorer plusieurs cas d&#39;utilisation de l&#39;instruction SQL PRINT, ses limitations et alternatives à SQL\nInstructions PRINT.\nExemple 1: instruction SQL Server PRINT pour imprimer une chaîne\nC&#39;est l&#39;exemple le plus simple. Exécutez la requête suivante dans SSMS et elle renvoie le message suivant dans la sortie:\n\n\n\n\n\n\n\nIMPRESSION «Mon nom est Rajendra Gupta»;\n\n\n\n\n\n\n\n\nDans SSMS, nous obtenons la sortie de l&#39;instruction PRINT dans la fenêtre de message SSMS comme indiqué dans l&#39;image ci-dessus.\nExemple 2: instruction PRINT pour imprimer une valeur de variable\nNous pouvons également utiliser l&#39;instruction SQL PRINT pour imprimer une valeur variable. Définissons un message dans une variable et plus tard\nimprimer ce message:\n\n\n\n\n\n\n\nDÉCLARER @Msg VARCHAR(300)= «Mon nom est Rajendra Gupta»;\nIMPRESSION @Msg;\n\n\n\n\n\n\n\n\nExemple 3: instruction SQL Server PRINT pour imprimer une valeur entière\nNous pouvons utiliser l&#39;instruction SQL PRINT pour imprimer une valeur entière, comme indiqué ci-dessous:\n\n\n\n\n\n\n\nDÉCLARER @une INT = 1000\nIMPRESSION @une\n\n\n\n\n\n\n\n\nNous pouvons spécifier uniquement les types de données CHAR, NCHAR, VARCHAR ou NVARCHAR dans l&#39;instruction PRINT. Dans ce cas, il convertit implicitement une valeur entière en type de données VARCHAR en interne.\nPrenons un autre exemple avec une variable entière et une chaîne dans l&#39;instruction PRINT. Vous obtenez un message d&#39;erreur dans\nconversion de type de données car SQL Server tente de convertir le type de données varchar en entier. Dans le type de données\npriorité, le type de données entier a une priorité élevée par rapport au type de données varchar:\n\n\n\n\n\n\n\nDÉCLARER @une INT = 1000\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + @une\n\n\n\n\n\n\n\n\nNous convertissons explicitement le type de données entier en varchar à l&#39;aide de l&#39;instruction SQL CAST:\n\n\n\n\n\n\n\nDÉCLARER @une INT= 1000;\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + JETER(@une COMME VARCHAR(dix));\n\n\n\n\n\n\n\n\nNous pouvons également utiliser la fonction SQL CONCAT, et elle effectue automatiquement la conversion du type de données pour nous. Dans ce qui suit\nrequête, nous obtenons la sortie en utilisant la fonction CONCAT similaire à l&#39;opérateur CAST:\n\n\n\n\n\n\n\nDÉCLARER @une INT= 1000;\nIMPRESSION CONCAT(&#39;Votre file d&#39;attente n&#39;est pas:&#39;,@une)\n\n\n\n\n\n\n\n\nExemple 4: instruction SQL Server PRINT avec une valeur de variable de type XML\nNous pouvons également utiliser le type de données XML avec l&#39;instruction PRINT, mais cela nécessite une conversion des données.\nComme le montre la sortie suivante, nous ne pouvons pas utiliser directement une variable XML dans l&#39;instruction PRINT. Cela donne une erreur\nmessage indiquant qu&#39;une conversion implicite de XML vers nvarchar n&#39;est pas autorisée:\n\n\n\n\n\n\n\nDÉCLARER @une XML = &quot;&quot;\nIMPRESSION @une\n\n\n\n\n\n\n\n\nNous pouvons utiliser la fonction SQL CAST ou CONVERT explicitement et obtenir la sortie requise:\n\n\n\n\n\n\n\n@une XML = &quot;&quot;\nIMPRESSION JETER(@une COMME VARCHAR(100))\n\n\n\n\n\n\n\n\nExemple 5: instruction SQL Server PRINT avec des conditions IF\nUtilisons l&#39;instruction PRINT pour imprimer le message satisfait dans la condition IF. Dans cet exemple, la variable @a\ncontient une chaîne. La condition IF vérifie la chaîne et affiche un message satisfaisant la condition:\n\n\n\n\n\n\n\nDÉCLARER @une VARCHAR(100)= &#39;Mangue&#39;;\nSI @une = &#39;Mangue&#39;\n    IMPRESSION N«C&#39;est un fruit»;\n    AUTRE\n    IMPRESSION N«C&#39;est un légume»;  \nALLER\n\n\n\n\n\n\n\n\nExemple 6: instruction PRINT avec des valeurs NULL\nNous ne pouvons pas imprimer NULL dans le message à l&#39;aide de l&#39;instruction SQL PRINT. La requête suivante ne renvoie aucun résultat:\n\n\nUtilisons la requête suivante qui contient une variable avec des valeurs NULL. Dans l&#39;instruction PRINT, nous utilisons une chaîne\navec cette variable, et elle ne renvoie aucun message. La concaténation d&#39;une chaîne et de la variable @a\n(NULL) qui ne renvoie aucune sortie:\n\n\n\n\n\n\n\nDÉCLARER @une NVarChar(100)= NUL\nIMPRESSION &#39;Bonjour&#39; + @une\n\n\n\n\n\n\n\n\nExemple 7: instruction SQL Server PRINT dans une boucle WHILE\nComme indiqué précédemment, plusieurs fois, nous avons besoin de connaître les informations sur chaque itération lors de l&#39;exécution d&#39;une requête dans une boucle telle que WHILE ou FOR.\nLa requête suivante utilise la boucle WHILE et affiche un message sur chaque itération:\n\n\n\n\n\n\n\nDÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; dix)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n        ENSEMBLE @une  = @une + 1;\n          FIN;\n\n\n\n\n\n\nIl donne la sortie suivante. Nous pouvons utiliser une instruction Print avec un message approprié et suivre la progression de la requête.\n\n\nLimitations de l&#39;instruction SQL Server PRINT\nDans l&#39;exemple précédent, nous avons vu l&#39;utilisation de cas d&#39;instructions SQL PRINT. Nous avons les limitations suivantes avec\nIMPRIMER aussi:\n\n\nNous devons utiliser les fonctions CAST, CONVERT ou CONCAT dans l&#39;instruction PRINT avec des variables\n\nNous ne pouvons pas voir une instruction PRINT dans SQL PROFILER\n\nL&#39;instruction PRINT ne renvoie pas le message immédiatement; il met en tampon la sortie et les affiche\n\nÉlaborons le point n ° 3 et voyons ses alternatives.\nExécutez la requête suivante qui contient deux instructions PRINT. En regardant la requête, vous pourriez penser à la sortie dans\nle formulaire suivant:\n\n\nIl donne le message de la première instruction PRINT\n\nAttend 5 secondes\n\nIl donne le message pour une deuxième instruction PRINT\n\nAttend encore 5 secondes\n\n\n\n\n\n\n\n\nIMPRESSION «Mon nom est Rajendra Gupta»; \nATTENDRE RETARD «00: 00: 05»;\nIMPRESSION «Vous lisez un article sur l&#39;instruction SQL PRINT»; \nATTENDRE RETARD «00: 00: 05»;\n\n\n\n\n\n\nDans l&#39;image GIF suivante, vous pouvez noter qu&#39;il imprime le message des deux instructions SQL PRINT ensemble après 10\nsecondes:\n\n\n\nPrenons un autre exemple et voyons le comportement de l&#39;instruction PRINT. En cela, nous voulons imprimer le message dès que\nl&#39;itération se termine:\n\n\n\n\n\n\n\nDÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n              ATTENDRE RETARD «00: 00: 01»\n        ENSEMBLE @une  = @une + 1;\n          FIN;\n\n\n\n\n\n\nDans la sortie, nous pouvons noter que tous les messages sortis des instructions PRINT apparaissent ensemble une fois l&#39;exécution\nse termine. La boucle s&#39;exécute 14 fois et attend 1 seconde à chaque exécution. Par conséquent, nous obtenons une sortie après 14\nsecondes pour toutes les instructions PRINT:\n\n\n\nSQL Server met en mémoire tampon les messages pour plusieurs instructions PRINT et les affiche ensemble.\nCe n&#39;est pas la sortie souhaitée, et en tout cas, cela peut ne pas être utile car vous ne pouvez pas suivre la progression de la requête dans\ntemps réel.\nInstruction RAISERROR SQL Server\nNous pouvons utiliser une alternative à l&#39;instruction SQL PRINT qui est RAISERROR.\nNous avons besoin de quelques arguments dans les instructions RAISERROR.\n\nMessage &#8211; C&#39;est le message que nous voulons imprimer\nGravité &#8211; Il s&#39;agit d&#39;un nombre compris entre 0 et 25 et définit la gravité des messages. Il traite\nle message différemment avec chaque gravité. Nous en verrons quelques exemples dans cet article\nEtat &#8211; C&#39;est un nombre compris entre 0 et 255 pour distinguer une erreur d&#39;une autre. C&#39;est bon de\nutilisez la valeur 1 pour cet article\n\nNous devons utiliser l&#39;instruction RAISERROR avec la clause NOWAIT; sinon, il montre le même comportement que pour SQL PRINT\ndéclaration:\n\n\n\n\n\n\n\nRAISERROR(«Mon nom est Rajendra Gupta», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\n\n\n\n\n\n\nDans la sortie suivante avec les instructions SQL Server RAISERROR, nous pouvons noter les éléments suivants:\n\n\nIl donne le message de la première instruction PRINT\n\nAttend 5 secondes\n\nIl donne le message pour la deuxième instruction PRINT\n\nAttend encore 5 secondes\n\n\n\nAuparavant, nous utilisions la gravité 0 dans l&#39;instruction RAISERROR. Utilisons la même requête avec la gravité 16:\n\n\n\n\n\n\n\nRAISERROR(«Mon nom est Rajendra Gupta», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\n\n\n\n\n\n\nDans la sortie, nous pouvons voir que le message apparaît en rouge, et il montre le message comme une erreur au lieu d&#39;un message normal. Vous obtenez également l&#39;identifiant, le niveau et l&#39;état du message:\n\n\nExécutons la requête suivante avec la gravité 1 et la gravité 16. La gravité 1 affiche le message avec des informations supplémentaires, mais il ne l&#39;affiche pas comme une erreur. Vous pouvez voir la couleur du texte en noir.\nUn autre SQL Server RAISERROR affiche le message de sortie comme une erreur:\n\n\n\n\n\n\n\nRAISERROR(«Mon nom est Rajendra Gupta», 1, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\n\n\n\n\n\n\n\n\nNous ne pouvons pas utiliser SQL Server RAISERROR directement à l&#39;aide des variables. Nous obtenons la sortie suivante qui n&#39;est pas celle souhaitée\nproduction:\n\n\n\n\n\n\n\nDÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        RAISERROR(&#39;Ceci est le numéro d&#39;itération:&#39;, @UNE, 0, 1) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;\n\n\n\n\n\n\nIl imprime le message mais n&#39;affiche pas la valeur de la variable:\n\n\nNous devons utiliser les instructions d&#39;impression de style C avec RAISERROR. La requête suivante montre la variable avec le\nRAISERROR. Vous pouvez remarquer que nous utilisons% s et% d pour imprimer une chaîne et une valeur entière:\n\n\n\n\n\n\n\nDÉCLARER @une INT;\nENSEMBLE @une = 1;\nDÉCLARER @S VARCHAR(100)= «Ceci est l&#39;itération non»;\nTANDIS QUE(@une &lt; 5)\n    COMMENCER\n        RAISERROR(&#39;%Dakota du Sud&#39;, 0, 1, @s, @une) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;\n\n\n\n\n\n\nNous obtenons la sortie instantanée dans SQL Server RAISERROR avec l&#39;instruction WITH NOWAIT selon nos besoins et ne\nne pas utiliser de tampon pour afficher la sortie une fois la requête terminée:\n\n\nVous pouvez confondre l&#39;instruction RAISERROR avec laquelle elle sert à générer des messages d&#39;erreur dans SQL Server. Nous pouvons également l&#39;utiliser comme alternative à l&#39;instruction SQL PRINT. Habituellement, les développeurs n&#39;utilisent les instructions PRINT que pour envoyer des messages dans une requête. Vous devez explorer les instructions RAISERROR pour vos requêtes, procédures stockées.\nConclusion\nDans cet article, nous avons exploré l&#39;instruction SQL Server PRINT et ses utilisations pour suivre les jalons utiles dans une requête. Nous avons également appris ses limites avec l&#39;instruction alternative RAISERROR de la solution dans SQL Server. serveur SQL\nRAISERROR vous offre un grand avantage pour contrôler le comportement du tampon de sortie.\n\n\n\n\n\nRajendra Gupta\nRajendra a plus de 8 ans d&#39;expérience dans l&#39;administration de bases de données, se passionnant pour l&#39;optimisation des performances des bases de données, la surveillance et les technologies de haute disponibilité et de reprise après sinistre, apprenant de nouvelles choses, de nouvelles fonctionnalités. \nTout en travaillant en tant que consultant senior DBA pour les gros clients et en étant certifié MCSA SQL 2012, il aime partager ses connaissances sur différents blogs.On peut le joindre à rajendra.gupta16@gmail.com\nVoir tous les articles de Rajendra Gupta\n\n\n\n\n\n\nDerniers articles par Rajendra Gupta (voir tout)\n\n\n\n\n\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête.","introduction\nSupposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#39;instruction SQL PRINT pour imprimer les messages correspondants ou suivre les valeurs des variables pendant la progression de la requête.\nNous utilisons également des interactions ou plusieurs boucles dans une requête avec un certain temps ou pour une boucle. Nous pouvons également utiliser le SQL PRINT\npour suivre l&#39;itération.\nNous utilisons l&#39;instruction SQL Server PRINT pour renvoyer des messages au client. Nous spécifions le message comme entrée d&#39;expressions de chaîne. SQL Server renvoie le message à l&#39;application.\nDans cet article, nous allons explorer plusieurs cas d&#39;utilisation de l&#39;instruction SQL PRINT, ses limitations et alternatives à SQL\nInstructions PRINT.\nExemple 1: instruction SQL Server PRINT pour imprimer une chaîne\nC&#39;est l&#39;exemple le plus simple. Exécutez la requête suivante dans SSMS et elle renvoie le message suivant dans la sortie:","IMPRESSION «Mon nom est Rajendra Gupta»;","Dans SSMS, nous obtenons la sortie de l&#39;instruction PRINT dans la fenêtre de message SSMS comme indiqué dans l&#39;image ci-dessus.\nExemple 2: instruction PRINT pour imprimer une valeur de variable\nNous pouvons également utiliser l&#39;instruction SQL PRINT pour imprimer une valeur variable. Définissons un message dans une variable et plus tard\nimprimer ce message:","DÉCLARER @Msg VARCHAR(300)= «Mon nom est Rajendra Gupta»;\nIMPRESSION @Msg;","Exemple 3: instruction SQL Server PRINT pour imprimer une valeur entière\nNous pouvons utiliser l&#39;instruction SQL PRINT pour imprimer une valeur entière, comme indiqué ci-dessous:","DÉCLARER @une INT = 1000\nIMPRESSION @une","Nous pouvons spécifier uniquement les types de données CHAR, NCHAR, VARCHAR ou NVARCHAR dans l&#39;instruction PRINT. Dans ce cas, il convertit implicitement une valeur entière en type de données VARCHAR en interne.\nPrenons un autre exemple avec une variable entière et une chaîne dans l&#39;instruction PRINT. Vous obtenez un message d&#39;erreur dans\nconversion de type de données car SQL Server tente de convertir le type de données varchar en entier. Dans le type de données\npriorité, le type de données entier a une priorité élevée par rapport au type de données varchar:","DÉCLARER @une INT = 1000\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + @une","Nous convertissons explicitement le type de données entier en varchar à l&#39;aide de l&#39;instruction SQL CAST:","DÉCLARER @une INT= 1000;\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + JETER(@une COMME VARCHAR(dix));","Nous pouvons également utiliser la fonction SQL CONCAT, et elle effectue automatiquement la conversion du type de données pour nous. Dans ce qui suit\nrequête, nous obtenons la sortie en utilisant la fonction CONCAT similaire à l&#39;opérateur CAST:","DÉCLARER @une INT= 1000;\nIMPRESSION CONCAT(&#39;Votre file d&#39;attente n&#39;est pas:&#39;,@une)","Exemple 4: instruction SQL Server PRINT avec une valeur de variable de type XML\nNous pouvons également utiliser le type de données XML avec l&#39;instruction PRINT, mais cela nécessite une conversion des données.\nComme le montre la sortie suivante, nous ne pouvons pas utiliser directement une variable XML dans l&#39;instruction PRINT. Cela donne une erreur\nmessage indiquant qu&#39;une conversion implicite de XML vers nvarchar n&#39;est pas autorisée:","DÉCLARER @une XML = &quot;&quot;\nIMPRESSION @une","Nous pouvons utiliser la fonction SQL CAST ou CONVERT explicitement et obtenir la sortie requise:","@une XML = &quot;&quot;\nIMPRESSION JETER(@une COMME VARCHAR(100))","Exemple 5: instruction SQL Server PRINT avec des conditions IF\nUtilisons l&#39;instruction PRINT pour imprimer le message satisfait dans la condition IF. Dans cet exemple, la variable @a\ncontient une chaîne. La condition IF vérifie la chaîne et affiche un message satisfaisant la condition:","DÉCLARER @une VARCHAR(100)= &#39;Mangue&#39;;\nSI @une = &#39;Mangue&#39;\n    IMPRESSION N«C&#39;est un fruit»;\n    AUTRE\n    IMPRESSION N«C&#39;est un légume»;  \nALLER","Exemple 6: instruction PRINT avec des valeurs NULL\nNous ne pouvons pas imprimer NULL dans le message à l&#39;aide de l&#39;instruction SQL PRINT. La requête suivante ne renvoie aucun résultat:","Utilisons la requête suivante qui contient une variable avec des valeurs NULL. Dans l&#39;instruction PRINT, nous utilisons une chaîne\navec cette variable, et elle ne renvoie aucun message. La concaténation d&#39;une chaîne et de la variable @a\n(NULL) qui ne renvoie aucune sortie:","DÉCLARER @une NVarChar(100)= NUL\nIMPRESSION &#39;Bonjour&#39; + @une","Exemple 7: instruction SQL Server PRINT dans une boucle WHILE\nComme indiqué précédemment, plusieurs fois, nous avons besoin de connaître les informations sur chaque itération lors de l&#39;exécution d&#39;une requête dans une boucle telle que WHILE ou FOR.\nLa requête suivante utilise la boucle WHILE et affiche un message sur chaque itération:","DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; dix)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n        ENSEMBLE @une  = @une + 1;\n          FIN;","Il donne la sortie suivante. Nous pouvons utiliser une instruction Print avec un message approprié et suivre la progression de la requête.","Limitations de l&#39;instruction SQL Server PRINT\nDans l&#39;exemple précédent, nous avons vu l&#39;utilisation de cas d&#39;instructions SQL PRINT. Nous avons les limitations suivantes avec\nIMPRIMER aussi:","Nous devons utiliser les fonctions CAST, CONVERT ou CONCAT dans l&#39;instruction PRINT avec des variables","Nous ne pouvons pas voir une instruction PRINT dans SQL PROFILER","L&#39;instruction PRINT ne renvoie pas le message immédiatement; il met en tampon la sortie et les affiche","Élaborons le point n ° 3 et voyons ses alternatives.\nExécutez la requête suivante qui contient deux instructions PRINT. En regardant la requête, vous pourriez penser à la sortie dans\nle formulaire suivant:","Il donne le message de la première instruction PRINT","Attend 5 secondes","Il donne le message pour une deuxième instruction PRINT","Attend encore 5 secondes","IMPRESSION «Mon nom est Rajendra Gupta»; \nATTENDRE RETARD «00: 00: 05»;\nIMPRESSION «Vous lisez un article sur l&#39;instruction SQL PRINT»; \nATTENDRE RETARD «00: 00: 05»;","Dans l&#39;image GIF suivante, vous pouvez noter qu&#39;il imprime le message des deux instructions SQL PRINT ensemble après 10\nsecondes:","Prenons un autre exemple et voyons le comportement de l&#39;instruction PRINT. En cela, nous voulons imprimer le message dès que\nl&#39;itération se termine:","DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n              ATTENDRE RETARD «00: 00: 01»\n        ENSEMBLE @une  = @une + 1;\n          FIN;","Dans la sortie, nous pouvons noter que tous les messages sortis des instructions PRINT apparaissent ensemble une fois l&#39;exécution\nse termine. La boucle s&#39;exécute 14 fois et attend 1 seconde à chaque exécution. Par conséquent, nous obtenons une sortie après 14\nsecondes pour toutes les instructions PRINT:","SQL Server met en mémoire tampon les messages pour plusieurs instructions PRINT et les affiche ensemble.\nCe n&#39;est pas la sortie souhaitée, et en tout cas, cela peut ne pas être utile car vous ne pouvez pas suivre la progression de la requête dans\ntemps réel.\nInstruction RAISERROR SQL Server\nNous pouvons utiliser une alternative à l&#39;instruction SQL PRINT qui est RAISERROR.\nNous avons besoin de quelques arguments dans les instructions RAISERROR.","Message &#8211; C&#39;est le message que nous voulons imprimer\nGravité &#8211; Il s&#39;agit d&#39;un nombre compris entre 0 et 25 et définit la gravité des messages. Il traite\nle message différemment avec chaque gravité. Nous en verrons quelques exemples dans cet article\nEtat &#8211; C&#39;est un nombre compris entre 0 et 255 pour distinguer une erreur d&#39;une autre. C&#39;est bon de\nutilisez la valeur 1 pour cet article","Nous devons utiliser l&#39;instruction RAISERROR avec la clause NOWAIT; sinon, il montre le même comportement que pour SQL PRINT\ndéclaration:","RAISERROR(«Mon nom est Rajendra Gupta», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","Dans la sortie suivante avec les instructions SQL Server RAISERROR, nous pouvons noter les éléments suivants:","Il donne le message de la première instruction PRINT","Attend 5 secondes","Il donne le message pour la deuxième instruction PRINT","Attend encore 5 secondes","Auparavant, nous utilisions la gravité 0 dans l&#39;instruction RAISERROR. Utilisons la même requête avec la gravité 16:","RAISERROR(«Mon nom est Rajendra Gupta», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","Dans la sortie, nous pouvons voir que le message apparaît en rouge, et il montre le message comme une erreur au lieu d&#39;un message normal. Vous obtenez également l&#39;identifiant, le niveau et l&#39;état du message:","Exécutons la requête suivante avec la gravité 1 et la gravité 16. La gravité 1 affiche le message avec des informations supplémentaires, mais il ne l&#39;affiche pas comme une erreur. Vous pouvez voir la couleur du texte en noir.\nUn autre SQL Server RAISERROR affiche le message de sortie comme une erreur:","RAISERROR(«Mon nom est Rajendra Gupta», 1, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","Nous ne pouvons pas utiliser SQL Server RAISERROR directement à l&#39;aide des variables. Nous obtenons la sortie suivante qui n&#39;est pas celle souhaitée\nproduction:","DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        RAISERROR(&#39;Ceci est le numéro d&#39;itération:&#39;, @UNE, 0, 1) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;","Il imprime le message mais n&#39;affiche pas la valeur de la variable:","Nous devons utiliser les instructions d&#39;impression de style C avec RAISERROR. La requête suivante montre la variable avec le\nRAISERROR. Vous pouvez remarquer que nous utilisons% s et% d pour imprimer une chaîne et une valeur entière:","DÉCLARER @une INT;\nENSEMBLE @une = 1;\nDÉCLARER @S VARCHAR(100)= «Ceci est l&#39;itération non»;\nTANDIS QUE(@une &lt; 5)\n    COMMENCER\n        RAISERROR(&#39;%Dakota du Sud&#39;, 0, 1, @s, @une) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;","Nous obtenons la sortie instantanée dans SQL Server RAISERROR avec l&#39;instruction WITH NOWAIT selon nos besoins et ne\nne pas utiliser de tampon pour afficher la sortie une fois la requête terminée:","Vous pouvez confondre l&#39;instruction RAISERROR avec laquelle elle sert à générer des messages d&#39;erreur dans SQL Server. Nous pouvons également l&#39;utiliser comme alternative à l&#39;instruction SQL PRINT. Habituellement, les développeurs n&#39;utilisent les instructions PRINT que pour envoyer des messages dans une requête. Vous devez explorer les instructions RAISERROR pour vos requêtes, procédures stockées.\nConclusion\nDans cet article, nous avons exploré l&#39;instruction SQL Server PRINT et ses utilisations pour suivre les jalons utiles dans une requête. Nous avons également appris ses limites avec l&#39;instruction alternative RAISERROR de la solution dans SQL Server. serveur SQL\nRAISERROR vous offre un grand avantage pour contrôler le comportement du tampon de sortie.","Rajendra Gupta\nRajendra a plus de 8 ans d&#39;expérience dans l&#39;administration de bases de données, se passionnant pour l&#39;optimisation des performances des bases de données, la surveillance et les technologies de haute disponibilité et de reprise après sinistre, apprenant de nouvelles choses, de nouvelles fonctionnalités. \nTout en travaillant en tant que consultant senior DBA pour les gros clients et en étant certifié MCSA SQL 2012, il aime partager ses connaissances sur différents blogs.On peut le joindre à rajendra.gupta16@gmail.com\nVoir tous les articles de Rajendra Gupta","Derniers articles par Rajendra Gupta (voir tout)","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête.","html":"<p>Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête.</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"introduction\nSupposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#39;instruction SQL PRINT pour imprimer les messages correspondants ou suivre les valeurs des variables pendant la progression de la requête.\nNous utilisons également des interactions ou plusieurs boucles dans une requête avec un certain temps ou pour une boucle. Nous pouvons également utiliser le SQL PRINT\npour suivre l&#39;itération.\nNous utilisons l&#39;instruction SQL Server PRINT pour renvoyer des messages au client. Nous spécifions le message comme entrée d&#39;expressions de chaîne. SQL Server renvoie le message à l&#39;application.\nDans cet article, nous allons explorer plusieurs cas d&#39;utilisation de l&#39;instruction SQL PRINT, ses limitations et alternatives à SQL\nInstructions PRINT.\nExemple 1: instruction SQL Server PRINT pour imprimer une chaîne\nC&#39;est l&#39;exemple le plus simple. Exécutez la requête suivante dans SSMS et elle renvoie le message suivant dans la sortie:","html":"<p>introduction\nSupposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#039;instruction SQL PRINT pour imprimer les messages correspondants ou suivre les valeurs des variables pendant la progression de la requête.\nNous utilisons également des interactions ou plusieurs boucles dans une requête avec un certain temps ou pour une boucle. Nous pouvons également utiliser le SQL PRINT\npour suivre l&#039;itération.\nNous utilisons l&#039;instruction SQL Server PRINT pour renvoyer des messages au client. Nous spécifions le message comme entrée d&#039;expressions de chaîne. SQL Server renvoie le message à l&#039;application.\nDans cet article, nous allons explorer plusieurs cas d&#039;utilisation de l&#039;instruction SQL PRINT, ses limitations et alternatives à SQL\nInstructions PRINT.\nExemple 1: instruction SQL Server PRINT pour imprimer une chaîne\nC&#039;est l&#039;exemple le plus simple. Exécutez la requête suivante dans SSMS et elle renvoie le message suivant dans la sortie:</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"IMPRESSION «Mon nom est Rajendra Gupta»;","html":"<p>IMPRESSION «Mon nom est Rajendra Gupta»;</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Dans SSMS, nous obtenons la sortie de l&#39;instruction PRINT dans la fenêtre de message SSMS comme indiqué dans l&#39;image ci-dessus.\nExemple 2: instruction PRINT pour imprimer une valeur de variable\nNous pouvons également utiliser l&#39;instruction SQL PRINT pour imprimer une valeur variable. Définissons un message dans une variable et plus tard\nimprimer ce message:","html":"<p>Dans SSMS, nous obtenons la sortie de l&#039;instruction PRINT dans la fenêtre de message SSMS comme indiqué dans l&#039;image ci-dessus.\nExemple 2: instruction PRINT pour imprimer une valeur de variable\nNous pouvons également utiliser l&#039;instruction SQL PRINT pour imprimer une valeur variable. Définissons un message dans une variable et plus tard\nimprimer ce message:</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"DÉCLARER @Msg VARCHAR(300)= «Mon nom est Rajendra Gupta»;\nIMPRESSION @Msg;","html":"<p>DÉCLARER @Msg VARCHAR(300)= «Mon nom est Rajendra Gupta»;\nIMPRESSION @Msg;</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Exemple 3: instruction SQL Server PRINT pour imprimer une valeur entière\nNous pouvons utiliser l&#39;instruction SQL PRINT pour imprimer une valeur entière, comme indiqué ci-dessous:","html":"<p>Exemple 3: instruction SQL Server PRINT pour imprimer une valeur entière\nNous pouvons utiliser l&#039;instruction SQL PRINT pour imprimer une valeur entière, comme indiqué ci-dessous:</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"DÉCLARER @une INT = 1000\nIMPRESSION @une","html":"<p>DÉCLARER @une INT = 1000\nIMPRESSION @une</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"Nous pouvons spécifier uniquement les types de données CHAR, NCHAR, VARCHAR ou NVARCHAR dans l&#39;instruction PRINT. Dans ce cas, il convertit implicitement une valeur entière en type de données VARCHAR en interne.\nPrenons un autre exemple avec une variable entière et une chaîne dans l&#39;instruction PRINT. Vous obtenez un message d&#39;erreur dans\nconversion de type de données car SQL Server tente de convertir le type de données varchar en entier. Dans le type de données\npriorité, le type de données entier a une priorité élevée par rapport au type de données varchar:","html":"<p>Nous pouvons spécifier uniquement les types de données CHAR, NCHAR, VARCHAR ou NVARCHAR dans l&#039;instruction PRINT. Dans ce cas, il convertit implicitement une valeur entière en type de données VARCHAR en interne.\nPrenons un autre exemple avec une variable entière et une chaîne dans l&#039;instruction PRINT. Vous obtenez un message d&#039;erreur dans\nconversion de type de données car SQL Server tente de convertir le type de données varchar en entier. Dans le type de données\npriorité, le type de données entier a une priorité élevée par rapport au type de données varchar:</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"DÉCLARER @une INT = 1000\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + @une","html":"<p>DÉCLARER @une INT = 1000\nIMPRESSION «Votre file d&#039;attente n&#039;est pas» + @une</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"Nous convertissons explicitement le type de données entier en varchar à l&#39;aide de l&#39;instruction SQL CAST:","html":"<p>Nous convertissons explicitement le type de données entier en varchar à l&#039;aide de l&#039;instruction SQL CAST:</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"DÉCLARER @une INT= 1000;\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + JETER(@une COMME VARCHAR(dix));","html":"<p>DÉCLARER @une INT= 1000;\nIMPRESSION «Votre file d&#039;attente n&#039;est pas» + JETER(@une COMME VARCHAR(dix));</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"Nous pouvons également utiliser la fonction SQL CONCAT, et elle effectue automatiquement la conversion du type de données pour nous. Dans ce qui suit\nrequête, nous obtenons la sortie en utilisant la fonction CONCAT similaire à l&#39;opérateur CAST:","html":"<p>Nous pouvons également utiliser la fonction SQL CONCAT, et elle effectue automatiquement la conversion du type de données pour nous. Dans ce qui suit\nrequête, nous obtenons la sortie en utilisant la fonction CONCAT similaire à l&#039;opérateur CAST:</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"DÉCLARER @une INT= 1000;\nIMPRESSION CONCAT(&#39;Votre file d&#39;attente n&#39;est pas:&#39;,@une)","html":"<p>DÉCLARER @une INT= 1000;\nIMPRESSION CONCAT(&#039;Votre file d&#039;attente n&#039;est pas:&#039;,@une)</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"Exemple 4: instruction SQL Server PRINT avec une valeur de variable de type XML\nNous pouvons également utiliser le type de données XML avec l&#39;instruction PRINT, mais cela nécessite une conversion des données.\nComme le montre la sortie suivante, nous ne pouvons pas utiliser directement une variable XML dans l&#39;instruction PRINT. Cela donne une erreur\nmessage indiquant qu&#39;une conversion implicite de XML vers nvarchar n&#39;est pas autorisée:","html":"<p>Exemple 4: instruction SQL Server PRINT avec une valeur de variable de type XML\nNous pouvons également utiliser le type de données XML avec l&#039;instruction PRINT, mais cela nécessite une conversion des données.\nComme le montre la sortie suivante, nous ne pouvons pas utiliser directement une variable XML dans l&#039;instruction PRINT. Cela donne une erreur\nmessage indiquant qu&#039;une conversion implicite de XML vers nvarchar n&#039;est pas autorisée:</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"DÉCLARER @une XML = &quot;&quot;\nIMPRESSION @une","html":"<p>DÉCLARER @une XML = &quot;&quot;\nIMPRESSION @une</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"Nous pouvons utiliser la fonction SQL CAST ou CONVERT explicitement et obtenir la sortie requise:","html":"<p>Nous pouvons utiliser la fonction SQL CAST ou CONVERT explicitement et obtenir la sortie requise:</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"@une XML = &quot;&quot;\nIMPRESSION JETER(@une COMME VARCHAR(100))","html":"<p>@une XML = &quot;&quot;\nIMPRESSION JETER(@une COMME VARCHAR(100))</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"Exemple 5: instruction SQL Server PRINT avec des conditions IF\nUtilisons l&#39;instruction PRINT pour imprimer le message satisfait dans la condition IF. Dans cet exemple, la variable @a\ncontient une chaîne. La condition IF vérifie la chaîne et affiche un message satisfaisant la condition:","html":"<p>Exemple 5: instruction SQL Server PRINT avec des conditions IF\nUtilisons l&#039;instruction PRINT pour imprimer le message satisfait dans la condition IF. Dans cet exemple, la variable @a\ncontient une chaîne. La condition IF vérifie la chaîne et affiche un message satisfaisant la condition:</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"DÉCLARER @une VARCHAR(100)= &#39;Mangue&#39;;\nSI @une = &#39;Mangue&#39;\n    IMPRESSION N«C&#39;est un fruit»;\n    AUTRE\n    IMPRESSION N«C&#39;est un légume»;  \nALLER","html":"<p>DÉCLARER @une VARCHAR(100)= &#039;Mangue&#039;;\nSI @une = &#039;Mangue&#039;\n    IMPRESSION N«C&#039;est un fruit»;\n    AUTRE\n    IMPRESSION N«C&#039;est un légume»;  \nALLER</p>"},{"id":"text-20","type":"text","heading":"","plain_text":"Exemple 6: instruction PRINT avec des valeurs NULL\nNous ne pouvons pas imprimer NULL dans le message à l&#39;aide de l&#39;instruction SQL PRINT. La requête suivante ne renvoie aucun résultat:","html":"<p>Exemple 6: instruction PRINT avec des valeurs NULL\nNous ne pouvons pas imprimer NULL dans le message à l&#039;aide de l&#039;instruction SQL PRINT. La requête suivante ne renvoie aucun résultat:</p>"},{"id":"text-21","type":"text","heading":"","plain_text":"Utilisons la requête suivante qui contient une variable avec des valeurs NULL. Dans l&#39;instruction PRINT, nous utilisons une chaîne\navec cette variable, et elle ne renvoie aucun message. La concaténation d&#39;une chaîne et de la variable @a\n(NULL) qui ne renvoie aucune sortie:","html":"<p>Utilisons la requête suivante qui contient une variable avec des valeurs NULL. Dans l&#039;instruction PRINT, nous utilisons une chaîne\navec cette variable, et elle ne renvoie aucun message. La concaténation d&#039;une chaîne et de la variable @a\n(NULL) qui ne renvoie aucune sortie:</p>"},{"id":"text-22","type":"text","heading":"","plain_text":"DÉCLARER @une NVarChar(100)= NUL\nIMPRESSION &#39;Bonjour&#39; + @une","html":"<p>DÉCLARER @une NVarChar(100)= NUL\nIMPRESSION &#039;Bonjour&#039; + @une</p>"},{"id":"text-23","type":"text","heading":"","plain_text":"Exemple 7: instruction SQL Server PRINT dans une boucle WHILE\nComme indiqué précédemment, plusieurs fois, nous avons besoin de connaître les informations sur chaque itération lors de l&#39;exécution d&#39;une requête dans une boucle telle que WHILE ou FOR.\nLa requête suivante utilise la boucle WHILE et affiche un message sur chaque itération:","html":"<p>Exemple 7: instruction SQL Server PRINT dans une boucle WHILE\nComme indiqué précédemment, plusieurs fois, nous avons besoin de connaître les informations sur chaque itération lors de l&#039;exécution d&#039;une requête dans une boucle telle que WHILE ou FOR.\nLa requête suivante utilise la boucle WHILE et affiche un message sur chaque itération:</p>"},{"id":"text-24","type":"text","heading":"","plain_text":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; dix)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n        ENSEMBLE @une  = @une + 1;\n          FIN;","html":"<p>DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; dix)\n    COMMENCER\n        IMPRESSION CONCAT(&#039;Ceci est le numéro d&#039;itération:&#039; , @une)\n        ENSEMBLE @une  = @une + 1;\n          FIN;</p>"},{"id":"text-25","type":"text","heading":"","plain_text":"Il donne la sortie suivante. Nous pouvons utiliser une instruction Print avec un message approprié et suivre la progression de la requête.","html":"<p>Il donne la sortie suivante. Nous pouvons utiliser une instruction Print avec un message approprié et suivre la progression de la requête.</p>"},{"id":"text-26","type":"text","heading":"","plain_text":"Limitations de l&#39;instruction SQL Server PRINT\nDans l&#39;exemple précédent, nous avons vu l&#39;utilisation de cas d&#39;instructions SQL PRINT. Nous avons les limitations suivantes avec\nIMPRIMER aussi:","html":"<p>Limitations de l&#039;instruction SQL Server PRINT\nDans l&#039;exemple précédent, nous avons vu l&#039;utilisation de cas d&#039;instructions SQL PRINT. Nous avons les limitations suivantes avec\nIMPRIMER aussi:</p>"},{"id":"text-27","type":"text","heading":"","plain_text":"Nous devons utiliser les fonctions CAST, CONVERT ou CONCAT dans l&#39;instruction PRINT avec des variables","html":"<p>Nous devons utiliser les fonctions CAST, CONVERT ou CONCAT dans l&#039;instruction PRINT avec des variables</p>"},{"id":"text-28","type":"text","heading":"","plain_text":"Nous ne pouvons pas voir une instruction PRINT dans SQL PROFILER","html":"<p>Nous ne pouvons pas voir une instruction PRINT dans SQL PROFILER</p>"},{"id":"text-29","type":"text","heading":"","plain_text":"L&#39;instruction PRINT ne renvoie pas le message immédiatement; il met en tampon la sortie et les affiche","html":"<p>L&#039;instruction PRINT ne renvoie pas le message immédiatement; il met en tampon la sortie et les affiche</p>"},{"id":"text-30","type":"text","heading":"","plain_text":"Élaborons le point n ° 3 et voyons ses alternatives.\nExécutez la requête suivante qui contient deux instructions PRINT. En regardant la requête, vous pourriez penser à la sortie dans\nle formulaire suivant:","html":"<p>Élaborons le point n ° 3 et voyons ses alternatives.\nExécutez la requête suivante qui contient deux instructions PRINT. En regardant la requête, vous pourriez penser à la sortie dans\nle formulaire suivant:</p>"},{"id":"text-31","type":"text","heading":"","plain_text":"Il donne le message de la première instruction PRINT","html":"<p>Il donne le message de la première instruction PRINT</p>"},{"id":"text-32","type":"text","heading":"","plain_text":"Attend 5 secondes","html":"<p>Attend 5 secondes</p>"},{"id":"text-33","type":"text","heading":"","plain_text":"Il donne le message pour une deuxième instruction PRINT","html":"<p>Il donne le message pour une deuxième instruction PRINT</p>"},{"id":"text-34","type":"text","heading":"","plain_text":"Attend encore 5 secondes","html":"<p>Attend encore 5 secondes</p>"},{"id":"text-35","type":"text","heading":"","plain_text":"IMPRESSION «Mon nom est Rajendra Gupta»; \nATTENDRE RETARD «00: 00: 05»;\nIMPRESSION «Vous lisez un article sur l&#39;instruction SQL PRINT»; \nATTENDRE RETARD «00: 00: 05»;","html":"<p>IMPRESSION «Mon nom est Rajendra Gupta»; \nATTENDRE RETARD «00: 00: 05»;\nIMPRESSION «Vous lisez un article sur l&#039;instruction SQL PRINT»; \nATTENDRE RETARD «00: 00: 05»;</p>"},{"id":"text-36","type":"text","heading":"","plain_text":"Dans l&#39;image GIF suivante, vous pouvez noter qu&#39;il imprime le message des deux instructions SQL PRINT ensemble après 10\nsecondes:","html":"<p>Dans l&#039;image GIF suivante, vous pouvez noter qu&#039;il imprime le message des deux instructions SQL PRINT ensemble après 10\nsecondes:</p>"},{"id":"text-37","type":"text","heading":"","plain_text":"Prenons un autre exemple et voyons le comportement de l&#39;instruction PRINT. En cela, nous voulons imprimer le message dès que\nl&#39;itération se termine:","html":"<p>Prenons un autre exemple et voyons le comportement de l&#039;instruction PRINT. En cela, nous voulons imprimer le message dès que\nl&#039;itération se termine:</p>"},{"id":"text-38","type":"text","heading":"","plain_text":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n              ATTENDRE RETARD «00: 00: 01»\n        ENSEMBLE @une  = @une + 1;\n          FIN;","html":"<p>DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        IMPRESSION CONCAT(&#039;Ceci est le numéro d&#039;itération:&#039; , @une)\n              ATTENDRE RETARD «00: 00: 01»\n        ENSEMBLE @une  = @une + 1;\n          FIN;</p>"},{"id":"text-39","type":"text","heading":"","plain_text":"Dans la sortie, nous pouvons noter que tous les messages sortis des instructions PRINT apparaissent ensemble une fois l&#39;exécution\nse termine. La boucle s&#39;exécute 14 fois et attend 1 seconde à chaque exécution. Par conséquent, nous obtenons une sortie après 14\nsecondes pour toutes les instructions PRINT:","html":"<p>Dans la sortie, nous pouvons noter que tous les messages sortis des instructions PRINT apparaissent ensemble une fois l&#039;exécution\nse termine. La boucle s&#039;exécute 14 fois et attend 1 seconde à chaque exécution. Par conséquent, nous obtenons une sortie après 14\nsecondes pour toutes les instructions PRINT:</p>"},{"id":"text-40","type":"text","heading":"","plain_text":"SQL Server met en mémoire tampon les messages pour plusieurs instructions PRINT et les affiche ensemble.\nCe n&#39;est pas la sortie souhaitée, et en tout cas, cela peut ne pas être utile car vous ne pouvez pas suivre la progression de la requête dans\ntemps réel.\nInstruction RAISERROR SQL Server\nNous pouvons utiliser une alternative à l&#39;instruction SQL PRINT qui est RAISERROR.\nNous avons besoin de quelques arguments dans les instructions RAISERROR.","html":"<p>SQL Server met en mémoire tampon les messages pour plusieurs instructions PRINT et les affiche ensemble.\nCe n&#039;est pas la sortie souhaitée, et en tout cas, cela peut ne pas être utile car vous ne pouvez pas suivre la progression de la requête dans\ntemps réel.\nInstruction RAISERROR SQL Server\nNous pouvons utiliser une alternative à l&#039;instruction SQL PRINT qui est RAISERROR.\nNous avons besoin de quelques arguments dans les instructions RAISERROR.</p>"},{"id":"text-41","type":"text","heading":"","plain_text":"Message &#8211; C&#39;est le message que nous voulons imprimer\nGravité &#8211; Il s&#39;agit d&#39;un nombre compris entre 0 et 25 et définit la gravité des messages. Il traite\nle message différemment avec chaque gravité. Nous en verrons quelques exemples dans cet article\nEtat &#8211; C&#39;est un nombre compris entre 0 et 255 pour distinguer une erreur d&#39;une autre. C&#39;est bon de\nutilisez la valeur 1 pour cet article","html":"<p>Message &#8211; C&#039;est le message que nous voulons imprimer\nGravité &#8211; Il s&#039;agit d&#039;un nombre compris entre 0 et 25 et définit la gravité des messages. Il traite\nle message différemment avec chaque gravité. Nous en verrons quelques exemples dans cet article\nEtat &#8211; C&#039;est un nombre compris entre 0 et 255 pour distinguer une erreur d&#039;une autre. C&#039;est bon de\nutilisez la valeur 1 pour cet article</p>"},{"id":"text-42","type":"text","heading":"","plain_text":"Nous devons utiliser l&#39;instruction RAISERROR avec la clause NOWAIT; sinon, il montre le même comportement que pour SQL PRINT\ndéclaration:","html":"<p>Nous devons utiliser l&#039;instruction RAISERROR avec la clause NOWAIT; sinon, il montre le même comportement que pour SQL PRINT\ndéclaration:</p>"},{"id":"text-43","type":"text","heading":"","plain_text":"RAISERROR(«Mon nom est Rajendra Gupta», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","html":"<p>RAISERROR(«Mon nom est Rajendra Gupta», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#039;instruction SQL PRINT», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;</p>"},{"id":"text-44","type":"text","heading":"","plain_text":"Dans la sortie suivante avec les instructions SQL Server RAISERROR, nous pouvons noter les éléments suivants:","html":"<p>Dans la sortie suivante avec les instructions SQL Server RAISERROR, nous pouvons noter les éléments suivants:</p>"},{"id":"text-45","type":"text","heading":"","plain_text":"Il donne le message de la première instruction PRINT","html":"<p>Il donne le message de la première instruction PRINT</p>"},{"id":"text-46","type":"text","heading":"","plain_text":"Attend 5 secondes","html":"<p>Attend 5 secondes</p>"},{"id":"text-47","type":"text","heading":"","plain_text":"Il donne le message pour la deuxième instruction PRINT","html":"<p>Il donne le message pour la deuxième instruction PRINT</p>"},{"id":"text-48","type":"text","heading":"","plain_text":"Attend encore 5 secondes","html":"<p>Attend encore 5 secondes</p>"},{"id":"text-49","type":"text","heading":"","plain_text":"Auparavant, nous utilisions la gravité 0 dans l&#39;instruction RAISERROR. Utilisons la même requête avec la gravité 16:","html":"<p>Auparavant, nous utilisions la gravité 0 dans l&#039;instruction RAISERROR. Utilisons la même requête avec la gravité 16:</p>"},{"id":"text-50","type":"text","heading":"","plain_text":"RAISERROR(«Mon nom est Rajendra Gupta», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","html":"<p>RAISERROR(«Mon nom est Rajendra Gupta», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#039;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;</p>"},{"id":"text-51","type":"text","heading":"","plain_text":"Dans la sortie, nous pouvons voir que le message apparaît en rouge, et il montre le message comme une erreur au lieu d&#39;un message normal. Vous obtenez également l&#39;identifiant, le niveau et l&#39;état du message:","html":"<p>Dans la sortie, nous pouvons voir que le message apparaît en rouge, et il montre le message comme une erreur au lieu d&#039;un message normal. Vous obtenez également l&#039;identifiant, le niveau et l&#039;état du message:</p>"},{"id":"text-52","type":"text","heading":"","plain_text":"Exécutons la requête suivante avec la gravité 1 et la gravité 16. La gravité 1 affiche le message avec des informations supplémentaires, mais il ne l&#39;affiche pas comme une erreur. Vous pouvez voir la couleur du texte en noir.\nUn autre SQL Server RAISERROR affiche le message de sortie comme une erreur:","html":"<p>Exécutons la requête suivante avec la gravité 1 et la gravité 16. La gravité 1 affiche le message avec des informations supplémentaires, mais il ne l&#039;affiche pas comme une erreur. Vous pouvez voir la couleur du texte en noir.\nUn autre SQL Server RAISERROR affiche le message de sortie comme une erreur:</p>"},{"id":"text-53","type":"text","heading":"","plain_text":"RAISERROR(«Mon nom est Rajendra Gupta», 1, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;","html":"<p>RAISERROR(«Mon nom est Rajendra Gupta», 1, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#039;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;</p>"},{"id":"text-54","type":"text","heading":"","plain_text":"Nous ne pouvons pas utiliser SQL Server RAISERROR directement à l&#39;aide des variables. Nous obtenons la sortie suivante qui n&#39;est pas celle souhaitée\nproduction:","html":"<p>Nous ne pouvons pas utiliser SQL Server RAISERROR directement à l&#039;aide des variables. Nous obtenons la sortie suivante qui n&#039;est pas celle souhaitée\nproduction:</p>"},{"id":"text-55","type":"text","heading":"","plain_text":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        RAISERROR(&#39;Ceci est le numéro d&#39;itération:&#39;, @UNE, 0, 1) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;","html":"<p>DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        RAISERROR(&#039;Ceci est le numéro d&#039;itération:&#039;, @UNE, 0, 1) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;</p>"},{"id":"text-56","type":"text","heading":"","plain_text":"Il imprime le message mais n&#39;affiche pas la valeur de la variable:","html":"<p>Il imprime le message mais n&#039;affiche pas la valeur de la variable:</p>"},{"id":"text-57","type":"text","heading":"","plain_text":"Nous devons utiliser les instructions d&#39;impression de style C avec RAISERROR. La requête suivante montre la variable avec le\nRAISERROR. Vous pouvez remarquer que nous utilisons% s et% d pour imprimer une chaîne et une valeur entière:","html":"<p>Nous devons utiliser les instructions d&#039;impression de style C avec RAISERROR. La requête suivante montre la variable avec le\nRAISERROR. Vous pouvez remarquer que nous utilisons% s et% d pour imprimer une chaîne et une valeur entière:</p>"},{"id":"text-58","type":"text","heading":"","plain_text":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nDÉCLARER @S VARCHAR(100)= «Ceci est l&#39;itération non»;\nTANDIS QUE(@une &lt; 5)\n    COMMENCER\n        RAISERROR(&#39;%Dakota du Sud&#39;, 0, 1, @s, @une) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;","html":"<p>DÉCLARER @une INT;\nENSEMBLE @une = 1;\nDÉCLARER @S VARCHAR(100)= «Ceci est l&#039;itération non»;\nTANDIS QUE(@une &lt; 5)\n    COMMENCER\n        RAISERROR(&#039;%Dakota du Sud&#039;, 0, 1, @s, @une) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;</p>"},{"id":"text-59","type":"text","heading":"","plain_text":"Nous obtenons la sortie instantanée dans SQL Server RAISERROR avec l&#39;instruction WITH NOWAIT selon nos besoins et ne\nne pas utiliser de tampon pour afficher la sortie une fois la requête terminée:","html":"<p>Nous obtenons la sortie instantanée dans SQL Server RAISERROR avec l&#039;instruction WITH NOWAIT selon nos besoins et ne\nne pas utiliser de tampon pour afficher la sortie une fois la requête terminée:</p>"},{"id":"text-60","type":"text","heading":"","plain_text":"Vous pouvez confondre l&#39;instruction RAISERROR avec laquelle elle sert à générer des messages d&#39;erreur dans SQL Server. Nous pouvons également l&#39;utiliser comme alternative à l&#39;instruction SQL PRINT. Habituellement, les développeurs n&#39;utilisent les instructions PRINT que pour envoyer des messages dans une requête. Vous devez explorer les instructions RAISERROR pour vos requêtes, procédures stockées.\nConclusion\nDans cet article, nous avons exploré l&#39;instruction SQL Server PRINT et ses utilisations pour suivre les jalons utiles dans une requête. Nous avons également appris ses limites avec l&#39;instruction alternative RAISERROR de la solution dans SQL Server. serveur SQL\nRAISERROR vous offre un grand avantage pour contrôler le comportement du tampon de sortie.","html":"<p>Vous pouvez confondre l&#039;instruction RAISERROR avec laquelle elle sert à générer des messages d&#039;erreur dans SQL Server. Nous pouvons également l&#039;utiliser comme alternative à l&#039;instruction SQL PRINT. Habituellement, les développeurs n&#039;utilisent les instructions PRINT que pour envoyer des messages dans une requête. Vous devez explorer les instructions RAISERROR pour vos requêtes, procédures stockées.\nConclusion\nDans cet article, nous avons exploré l&#039;instruction SQL Server PRINT et ses utilisations pour suivre les jalons utiles dans une requête. Nous avons également appris ses limites avec l&#039;instruction alternative RAISERROR de la solution dans SQL Server. serveur SQL\nRAISERROR vous offre un grand avantage pour contrôler le comportement du tampon de sortie.</p>"},{"id":"text-61","type":"text","heading":"","plain_text":"Rajendra Gupta\nRajendra a plus de 8 ans d&#39;expérience dans l&#39;administration de bases de données, se passionnant pour l&#39;optimisation des performances des bases de données, la surveillance et les technologies de haute disponibilité et de reprise après sinistre, apprenant de nouvelles choses, de nouvelles fonctionnalités. \nTout en travaillant en tant que consultant senior DBA pour les gros clients et en étant certifié MCSA SQL 2012, il aime partager ses connaissances sur différents blogs.On peut le joindre à rajendra.gupta16@gmail.com\nVoir tous les articles de Rajendra Gupta","html":"<p>Rajendra Gupta\nRajendra a plus de 8 ans d&#039;expérience dans l&#039;administration de bases de données, se passionnant pour l&#039;optimisation des performances des bases de données, la surveillance et les technologies de haute disponibilité et de reprise après sinistre, apprenant de nouvelles choses, de nouvelles fonctionnalités. \nTout en travaillant en tant que consultant senior DBA pour les gros clients et en étant certifié MCSA SQL 2012, il aime partager ses connaissances sur différents blogs.On peut le joindre à rajendra.gupta16@gmail.com\nVoir tous les articles de Rajendra Gupta</p>"},{"id":"text-62","type":"text","heading":"","plain_text":"Derniers articles par Rajendra Gupta (voir tout)","html":"<p>Derniers articles par Rajendra Gupta (voir tout)</p>"},{"id":"text-63","type":"text","heading":"","plain_text":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]","html":"<p>Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]</p>"}],"sections":[{"id":"text-1","heading":"Text","content":"Cet article explore les instructions SQL Server PRINT et ses autres instructions SQL Server RAISEERROR à imprimer\nmessages dans une requête."},{"id":"text-2","heading":"Text","content":"introduction\nSupposons que vous exécutiez une requête en plusieurs étapes. Nous voulons recevoir un message une fois chaque étape terminée. Il permet de suivre la progression de la requête. Habituellement, nous utilisons l&#39;instruction SQL PRINT pour imprimer les messages correspondants ou suivre les valeurs des variables pendant la progression de la requête.\nNous utilisons également des interactions ou plusieurs boucles dans une requête avec un certain temps ou pour une boucle. Nous pouvons également utiliser le SQL PRINT\npour suivre l&#39;itération.\nNous utilisons l&#39;instruction SQL Server PRINT pour renvoyer des messages au client. Nous spécifions le message comme entrée d&#39;expressions de chaîne. SQL Server renvoie le message à l&#39;application.\nDans cet article, nous allons explorer plusieurs cas d&#39;utilisation de l&#39;instruction SQL PRINT, ses limitations et alternatives à SQL\nInstructions PRINT.\nExemple 1: instruction SQL Server PRINT pour imprimer une chaîne\nC&#39;est l&#39;exemple le plus simple. Exécutez la requête suivante dans SSMS et elle renvoie le message suivant dans la sortie:"},{"id":"text-3","heading":"Text","content":"IMPRESSION «Mon nom est Rajendra Gupta»;"},{"id":"text-4","heading":"Text","content":"Dans SSMS, nous obtenons la sortie de l&#39;instruction PRINT dans la fenêtre de message SSMS comme indiqué dans l&#39;image ci-dessus.\nExemple 2: instruction PRINT pour imprimer une valeur de variable\nNous pouvons également utiliser l&#39;instruction SQL PRINT pour imprimer une valeur variable. Définissons un message dans une variable et plus tard\nimprimer ce message:"},{"id":"text-5","heading":"Text","content":"DÉCLARER @Msg VARCHAR(300)= «Mon nom est Rajendra Gupta»;\nIMPRESSION @Msg;"},{"id":"text-6","heading":"Text","content":"Exemple 3: instruction SQL Server PRINT pour imprimer une valeur entière\nNous pouvons utiliser l&#39;instruction SQL PRINT pour imprimer une valeur entière, comme indiqué ci-dessous:"},{"id":"text-7","heading":"Text","content":"DÉCLARER @une INT = 1000\nIMPRESSION @une"},{"id":"text-8","heading":"Text","content":"Nous pouvons spécifier uniquement les types de données CHAR, NCHAR, VARCHAR ou NVARCHAR dans l&#39;instruction PRINT. Dans ce cas, il convertit implicitement une valeur entière en type de données VARCHAR en interne.\nPrenons un autre exemple avec une variable entière et une chaîne dans l&#39;instruction PRINT. Vous obtenez un message d&#39;erreur dans\nconversion de type de données car SQL Server tente de convertir le type de données varchar en entier. Dans le type de données\npriorité, le type de données entier a une priorité élevée par rapport au type de données varchar:"},{"id":"text-9","heading":"Text","content":"DÉCLARER @une INT = 1000\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + @une"},{"id":"text-10","heading":"Text","content":"Nous convertissons explicitement le type de données entier en varchar à l&#39;aide de l&#39;instruction SQL CAST:"},{"id":"text-11","heading":"Text","content":"DÉCLARER @une INT= 1000;\nIMPRESSION «Votre file d&#39;attente n&#39;est pas» + JETER(@une COMME VARCHAR(dix));"},{"id":"text-12","heading":"Text","content":"Nous pouvons également utiliser la fonction SQL CONCAT, et elle effectue automatiquement la conversion du type de données pour nous. Dans ce qui suit\nrequête, nous obtenons la sortie en utilisant la fonction CONCAT similaire à l&#39;opérateur CAST:"},{"id":"text-13","heading":"Text","content":"DÉCLARER @une INT= 1000;\nIMPRESSION CONCAT(&#39;Votre file d&#39;attente n&#39;est pas:&#39;,@une)"},{"id":"text-14","heading":"Text","content":"Exemple 4: instruction SQL Server PRINT avec une valeur de variable de type XML\nNous pouvons également utiliser le type de données XML avec l&#39;instruction PRINT, mais cela nécessite une conversion des données.\nComme le montre la sortie suivante, nous ne pouvons pas utiliser directement une variable XML dans l&#39;instruction PRINT. Cela donne une erreur\nmessage indiquant qu&#39;une conversion implicite de XML vers nvarchar n&#39;est pas autorisée:"},{"id":"text-15","heading":"Text","content":"DÉCLARER @une XML = &quot;&quot;\nIMPRESSION @une"},{"id":"text-16","heading":"Text","content":"Nous pouvons utiliser la fonction SQL CAST ou CONVERT explicitement et obtenir la sortie requise:"},{"id":"text-17","heading":"Text","content":"@une XML = &quot;&quot;\nIMPRESSION JETER(@une COMME VARCHAR(100))"},{"id":"text-18","heading":"Text","content":"Exemple 5: instruction SQL Server PRINT avec des conditions IF\nUtilisons l&#39;instruction PRINT pour imprimer le message satisfait dans la condition IF. Dans cet exemple, la variable @a\ncontient une chaîne. La condition IF vérifie la chaîne et affiche un message satisfaisant la condition:"},{"id":"text-19","heading":"Text","content":"DÉCLARER @une VARCHAR(100)= &#39;Mangue&#39;;\nSI @une = &#39;Mangue&#39;\n    IMPRESSION N«C&#39;est un fruit»;\n    AUTRE\n    IMPRESSION N«C&#39;est un légume»;  \nALLER"},{"id":"text-20","heading":"Text","content":"Exemple 6: instruction PRINT avec des valeurs NULL\nNous ne pouvons pas imprimer NULL dans le message à l&#39;aide de l&#39;instruction SQL PRINT. La requête suivante ne renvoie aucun résultat:"},{"id":"text-21","heading":"Text","content":"Utilisons la requête suivante qui contient une variable avec des valeurs NULL. Dans l&#39;instruction PRINT, nous utilisons une chaîne\navec cette variable, et elle ne renvoie aucun message. La concaténation d&#39;une chaîne et de la variable @a\n(NULL) qui ne renvoie aucune sortie:"},{"id":"text-22","heading":"Text","content":"DÉCLARER @une NVarChar(100)= NUL\nIMPRESSION &#39;Bonjour&#39; + @une"},{"id":"text-23","heading":"Text","content":"Exemple 7: instruction SQL Server PRINT dans une boucle WHILE\nComme indiqué précédemment, plusieurs fois, nous avons besoin de connaître les informations sur chaque itération lors de l&#39;exécution d&#39;une requête dans une boucle telle que WHILE ou FOR.\nLa requête suivante utilise la boucle WHILE et affiche un message sur chaque itération:"},{"id":"text-24","heading":"Text","content":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; dix)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n        ENSEMBLE @une  = @une + 1;\n          FIN;"},{"id":"text-25","heading":"Text","content":"Il donne la sortie suivante. Nous pouvons utiliser une instruction Print avec un message approprié et suivre la progression de la requête."},{"id":"text-26","heading":"Text","content":"Limitations de l&#39;instruction SQL Server PRINT\nDans l&#39;exemple précédent, nous avons vu l&#39;utilisation de cas d&#39;instructions SQL PRINT. Nous avons les limitations suivantes avec\nIMPRIMER aussi:"},{"id":"text-27","heading":"Text","content":"Nous devons utiliser les fonctions CAST, CONVERT ou CONCAT dans l&#39;instruction PRINT avec des variables"},{"id":"text-28","heading":"Text","content":"Nous ne pouvons pas voir une instruction PRINT dans SQL PROFILER"},{"id":"text-29","heading":"Text","content":"L&#39;instruction PRINT ne renvoie pas le message immédiatement; il met en tampon la sortie et les affiche"},{"id":"text-30","heading":"Text","content":"Élaborons le point n ° 3 et voyons ses alternatives.\nExécutez la requête suivante qui contient deux instructions PRINT. En regardant la requête, vous pourriez penser à la sortie dans\nle formulaire suivant:"},{"id":"text-31","heading":"Text","content":"Il donne le message de la première instruction PRINT"},{"id":"text-32","heading":"Text","content":"Attend 5 secondes"},{"id":"text-33","heading":"Text","content":"Il donne le message pour une deuxième instruction PRINT"},{"id":"text-34","heading":"Text","content":"Attend encore 5 secondes"},{"id":"text-35","heading":"Text","content":"IMPRESSION «Mon nom est Rajendra Gupta»; \nATTENDRE RETARD «00: 00: 05»;\nIMPRESSION «Vous lisez un article sur l&#39;instruction SQL PRINT»; \nATTENDRE RETARD «00: 00: 05»;"},{"id":"text-36","heading":"Text","content":"Dans l&#39;image GIF suivante, vous pouvez noter qu&#39;il imprime le message des deux instructions SQL PRINT ensemble après 10\nsecondes:"},{"id":"text-37","heading":"Text","content":"Prenons un autre exemple et voyons le comportement de l&#39;instruction PRINT. En cela, nous voulons imprimer le message dès que\nl&#39;itération se termine:"},{"id":"text-38","heading":"Text","content":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        IMPRESSION CONCAT(&#39;Ceci est le numéro d&#39;itération:&#39; , @une)\n              ATTENDRE RETARD «00: 00: 01»\n        ENSEMBLE @une  = @une + 1;\n          FIN;"},{"id":"text-39","heading":"Text","content":"Dans la sortie, nous pouvons noter que tous les messages sortis des instructions PRINT apparaissent ensemble une fois l&#39;exécution\nse termine. La boucle s&#39;exécute 14 fois et attend 1 seconde à chaque exécution. Par conséquent, nous obtenons une sortie après 14\nsecondes pour toutes les instructions PRINT:"},{"id":"text-40","heading":"Text","content":"SQL Server met en mémoire tampon les messages pour plusieurs instructions PRINT et les affiche ensemble.\nCe n&#39;est pas la sortie souhaitée, et en tout cas, cela peut ne pas être utile car vous ne pouvez pas suivre la progression de la requête dans\ntemps réel.\nInstruction RAISERROR SQL Server\nNous pouvons utiliser une alternative à l&#39;instruction SQL PRINT qui est RAISERROR.\nNous avons besoin de quelques arguments dans les instructions RAISERROR."},{"id":"text-41","heading":"Text","content":"Message &#8211; C&#39;est le message que nous voulons imprimer\nGravité &#8211; Il s&#39;agit d&#39;un nombre compris entre 0 et 25 et définit la gravité des messages. Il traite\nle message différemment avec chaque gravité. Nous en verrons quelques exemples dans cet article\nEtat &#8211; C&#39;est un nombre compris entre 0 et 255 pour distinguer une erreur d&#39;une autre. C&#39;est bon de\nutilisez la valeur 1 pour cet article"},{"id":"text-42","heading":"Text","content":"Nous devons utiliser l&#39;instruction RAISERROR avec la clause NOWAIT; sinon, il montre le même comportement que pour SQL PRINT\ndéclaration:"},{"id":"text-43","heading":"Text","content":"RAISERROR(«Mon nom est Rajendra Gupta», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 0, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;"},{"id":"text-44","heading":"Text","content":"Dans la sortie suivante avec les instructions SQL Server RAISERROR, nous pouvons noter les éléments suivants:"},{"id":"text-45","heading":"Text","content":"Il donne le message de la première instruction PRINT"},{"id":"text-46","heading":"Text","content":"Attend 5 secondes"},{"id":"text-47","heading":"Text","content":"Il donne le message pour la deuxième instruction PRINT"},{"id":"text-48","heading":"Text","content":"Attend encore 5 secondes"},{"id":"text-49","heading":"Text","content":"Auparavant, nous utilisions la gravité 0 dans l&#39;instruction RAISERROR. Utilisons la même requête avec la gravité 16:"},{"id":"text-50","heading":"Text","content":"RAISERROR(«Mon nom est Rajendra Gupta», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;"},{"id":"text-51","heading":"Text","content":"Dans la sortie, nous pouvons voir que le message apparaît en rouge, et il montre le message comme une erreur au lieu d&#39;un message normal. Vous obtenez également l&#39;identifiant, le niveau et l&#39;état du message:"},{"id":"text-52","heading":"Text","content":"Exécutons la requête suivante avec la gravité 1 et la gravité 16. La gravité 1 affiche le message avec des informations supplémentaires, mais il ne l&#39;affiche pas comme une erreur. Vous pouvez voir la couleur du texte en noir.\nUn autre SQL Server RAISERROR affiche le message de sortie comme une erreur:"},{"id":"text-53","heading":"Text","content":"RAISERROR(«Mon nom est Rajendra Gupta», 1, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;\nRAISERROR(«Vous lisez un article sur l&#39;instruction SQL PRINT», 16, 1) AVEC NON ATTENDS;\nATTENDRE RETARD «00: 00: 05»;"},{"id":"text-54","heading":"Text","content":"Nous ne pouvons pas utiliser SQL Server RAISERROR directement à l&#39;aide des variables. Nous obtenons la sortie suivante qui n&#39;est pas celle souhaitée\nproduction:"},{"id":"text-55","heading":"Text","content":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nTANDIS QUE(@une &lt; 15)\n    COMMENCER\n        RAISERROR(&#39;Ceci est le numéro d&#39;itération:&#39;, @UNE, 0, 1) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;"},{"id":"text-56","heading":"Text","content":"Il imprime le message mais n&#39;affiche pas la valeur de la variable:"},{"id":"text-57","heading":"Text","content":"Nous devons utiliser les instructions d&#39;impression de style C avec RAISERROR. La requête suivante montre la variable avec le\nRAISERROR. Vous pouvez remarquer que nous utilisons% s et% d pour imprimer une chaîne et une valeur entière:"},{"id":"text-58","heading":"Text","content":"DÉCLARER @une INT;\nENSEMBLE @une = 1;\nDÉCLARER @S VARCHAR(100)= «Ceci est l&#39;itération non»;\nTANDIS QUE(@une &lt; 5)\n    COMMENCER\n        RAISERROR(&#39;%Dakota du Sud&#39;, 0, 1, @s, @une) AVEC NON ATTENDS;\n        ENSEMBLE @une = @une + 1;\n    FIN;"},{"id":"text-59","heading":"Text","content":"Nous obtenons la sortie instantanée dans SQL Server RAISERROR avec l&#39;instruction WITH NOWAIT selon nos besoins et ne\nne pas utiliser de tampon pour afficher la sortie une fois la requête terminée:"},{"id":"text-60","heading":"Text","content":"Vous pouvez confondre l&#39;instruction RAISERROR avec laquelle elle sert à générer des messages d&#39;erreur dans SQL Server. Nous pouvons également l&#39;utiliser comme alternative à l&#39;instruction SQL PRINT. Habituellement, les développeurs n&#39;utilisent les instructions PRINT que pour envoyer des messages dans une requête. Vous devez explorer les instructions RAISERROR pour vos requêtes, procédures stockées.\nConclusion\nDans cet article, nous avons exploré l&#39;instruction SQL Server PRINT et ses utilisations pour suivre les jalons utiles dans une requête. Nous avons également appris ses limites avec l&#39;instruction alternative RAISERROR de la solution dans SQL Server. serveur SQL\nRAISERROR vous offre un grand avantage pour contrôler le comportement du tampon de sortie."},{"id":"text-61","heading":"Text","content":"Rajendra Gupta\nRajendra a plus de 8 ans d&#39;expérience dans l&#39;administration de bases de données, se passionnant pour l&#39;optimisation des performances des bases de données, la surveillance et les technologies de haute disponibilité et de reprise après sinistre, apprenant de nouvelles choses, de nouvelles fonctionnalités. \nTout en travaillant en tant que consultant senior DBA pour les gros clients et en étant certifié MCSA SQL 2012, il aime partager ses connaissances sur différents blogs.On peut le joindre à rajendra.gupta16@gmail.com\nVoir tous les articles de Rajendra Gupta"},{"id":"text-62","heading":"Text","content":"Derniers articles par Rajendra Gupta (voir tout)"},{"id":"text-63","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2020/01/print-statement-to-print-a-string-e1569928924690.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2020/01/14/instructions-sql-server-print-et-sql-server-raiserror-serveur-dimpression/llm.json","type":"application/json"},{"rel":"llm-manifest","href":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","type":"application/json"}],"http_headers":{"X-LLM-Friendly":"1","X-LLM-Schema":"1.1.0","Content-Security-Policy":"default-src 'none'; img-src * data:; style-src 'unsafe-inline'"},"license":"CC BY-ND 4.0","attribution_required":true,"allow_cors":false}