{"version":"1.1","schema_version":"1.1.0","plugin_version":"1.1.2","url":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/","llm_html_url":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/llm","llm_json_url":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/llm.json","manifest_url":"https://tutos-gameserver.fr/llm-endpoints-manifest.json","language":"fr-FR","locale":"fr_FR","title":"serveur sql &#8211; Comment déboguer des procédures stockées avec des instructions d&#39;impression?\n\n &#8211; Bien choisir son serveur d impression","site":{"name":"Tutos GameServer","url":"https://tutos-gameserver.fr/"},"author":{"id":1,"name":"Titanfall","url":"https://tutos-gameserver.fr/author/titanfall/"},"published_at":"2021-02-05T15:49:04+00:00","modified_at":"2021-02-05T15:49:04+00:00","word_count":738,"reading_time_seconds":222,"summary":"[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »] Avant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM. au dessus de. J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre [&hellip;]","summary_points":["[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]\n\n\nAvant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM.","au dessus de.","J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates.","La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#39;est pas du tout ce qui a été demandé."],"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":"6c84d810e54e53f3194215d9b6bd35f2","plain_text":"[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]\n\n\nAvant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM. au dessus de. J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#39;est pas du tout ce qui a été demandé.\nPourquoi la sortie de l&#39;instruction PRINT ne s&#39;affiche-t-elle pas pendant l&#39;exécution de ma procédure stockée?La version courte de cette réponse est que vous envoyez l&#39;exécution de votre sproc au serveur SQL et il ne répondra pas tant qu&#39;il n&#39;aura pas terminé la transaction entière. Voici une meilleure réponse située sur ce lien externe.\n\n\nPour encore plus d&#39;opinions / observations, concentrez votre attention sur cet article SO ici.\nRegardez plus précisément cette réponse du même post par Phil_factor (Ha ha! Love the SQL humour)\nEn ce qui concerne la suggestion d&#39;utiliser RAISERROR WITH NOWAIT, regardez cette réponse du même message par JimCarden\n\nNe fais pas ces choses\n\nCertaines personnes ont l&#39;impression qu&#39;elles peuvent simplement utiliser une instruction GO après leur instruction PRINT, mais vous NE POUVEZ PAS utiliser l&#39;instruction GO INSIDE d&#39;un sproc. Donc, cette solution est sortie.\nJe ne recommande pas SELECT-ing vos instructions d&#39;impression car cela va juste brouiller votre jeu de résultats avec des absurdités et si votre sproc est censé être consommé par un programme plus tard, vous devrez savoir quels jeux de résultats ignorer lors de la boucle à travers les résultats de votre lecteur de données. C&#39;est juste une mauvaise idée, alors ne le faites pas.\nUn autre problème avec SELECT-ING vos instructions d&#39;impression est qu&#39;elles n&#39;apparaissent pas toujours immédiatement. J&#39;ai eu différentes expériences avec cela pour différentes exécutions, alors ne vous attendez pas à une quelconque cohérence avec cette méthodologie.\n\nAlternative à IMPRIMER à l&#39;intérieur d&#39;une procédure stockéeÀ mon avis, c&#39;est vraiment une sorte de travail dégoûtant parce que la syntaxe est déroutante dans le contexte dans lequel elle est utilisée, mais qui sait peut-être qu&#39;elle sera mise à jour à l&#39;avenir par Microsoft. Je n&#39;aime tout simplement pas l&#39;idée de générer une erreur dans le seul but d&#39;imprimer les informations de débogage &#8230;\n\nIl semble que le seul moyen de contourner ce problème est d&#39;utiliser, comme cela a déjà été expliqué à plusieurs reprises, RAISERROR WITH NOWAIT. Je donne un exemple et souligne un petit problème avec cette approche:\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;\n\n    - Cela imprimera immédiatement\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;\n\n    - Délai de cinq secondes pour simuler une exécution longue\n    RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;\n\n    - Cela s&#39;imprimera après le délai de cinq secondes\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN\n\nALLER\n\nEXEC [dbo].[PrintVsRaiseErrorSprocExample]\n\nLes deux résultats de l&#39;instruction SELECT ne s&#39;afficheront qu&#39;une fois l&#39;exécution terminée et le impression les instructions s&#39;afficheront dans l&#39;ordre indiqué ci-dessus.\nProblème potentiel avec cette approcheSupposons que vous ayez à la fois votre instruction PRINT et votre instruction RAISERROR l&#39;une après l&#39;autre, puis elles s&#39;impriment toutes les deux. Je suis sûr que cela a quelque chose à voir avec la mise en mémoire tampon, mais sachez simplement que cela peut arriver.\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample2]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;\n\n    - Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Démarrer&#39;;\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;\n\n    RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;\n\n    - Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Fin&#39;\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN\n\nALLER\n\nEXEC [dbo].[PrintVsRaiseErrorSprocExample2]\n\nPar conséquent, le travail ici est, n&#39;utilisez pas à la fois PRINT et RAISERROR, choisissez simplement l&#39;un sur l&#39;autre. Si vous voulez que votre sortie s&#39;affiche pendant l&#39;exécution d&#39;un sproc, utilisez RAISERROR WITH NOWAIT.\n\nClick to rate this post!\r\n                                   \r\n                               [Total: 0  Average: 0]","paragraphs":["[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]","Avant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM. au dessus de. J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#39;est pas du tout ce qui a été demandé.\nPourquoi la sortie de l&#39;instruction PRINT ne s&#39;affiche-t-elle pas pendant l&#39;exécution de ma procédure stockée?La version courte de cette réponse est que vous envoyez l&#39;exécution de votre sproc au serveur SQL et il ne répondra pas tant qu&#39;il n&#39;aura pas terminé la transaction entière. Voici une meilleure réponse située sur ce lien externe.","Pour encore plus d&#39;opinions / observations, concentrez votre attention sur cet article SO ici.\nRegardez plus précisément cette réponse du même post par Phil_factor (Ha ha! Love the SQL humour)\nEn ce qui concerne la suggestion d&#39;utiliser RAISERROR WITH NOWAIT, regardez cette réponse du même message par JimCarden","Ne fais pas ces choses","Certaines personnes ont l&#39;impression qu&#39;elles peuvent simplement utiliser une instruction GO après leur instruction PRINT, mais vous NE POUVEZ PAS utiliser l&#39;instruction GO INSIDE d&#39;un sproc. Donc, cette solution est sortie.\nJe ne recommande pas SELECT-ing vos instructions d&#39;impression car cela va juste brouiller votre jeu de résultats avec des absurdités et si votre sproc est censé être consommé par un programme plus tard, vous devrez savoir quels jeux de résultats ignorer lors de la boucle à travers les résultats de votre lecteur de données. C&#39;est juste une mauvaise idée, alors ne le faites pas.\nUn autre problème avec SELECT-ING vos instructions d&#39;impression est qu&#39;elles n&#39;apparaissent pas toujours immédiatement. J&#39;ai eu différentes expériences avec cela pour différentes exécutions, alors ne vous attendez pas à une quelconque cohérence avec cette méthodologie.","Alternative à IMPRIMER à l&#39;intérieur d&#39;une procédure stockéeÀ mon avis, c&#39;est vraiment une sorte de travail dégoûtant parce que la syntaxe est déroutante dans le contexte dans lequel elle est utilisée, mais qui sait peut-être qu&#39;elle sera mise à jour à l&#39;avenir par Microsoft. Je n&#39;aime tout simplement pas l&#39;idée de générer une erreur dans le seul but d&#39;imprimer les informations de débogage &#8230;","Il semble que le seul moyen de contourner ce problème est d&#39;utiliser, comme cela a déjà été expliqué à plusieurs reprises, RAISERROR WITH NOWAIT. Je donne un exemple et souligne un petit problème avec cette approche:\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;","- Cela imprimera immédiatement\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;","- Délai de cinq secondes pour simuler une exécution longue\n    RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;","- Cela s&#39;imprimera après le délai de cinq secondes\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN","ALLER","EXEC [dbo].[PrintVsRaiseErrorSprocExample]","Les deux résultats de l&#39;instruction SELECT ne s&#39;afficheront qu&#39;une fois l&#39;exécution terminée et le impression les instructions s&#39;afficheront dans l&#39;ordre indiqué ci-dessus.\nProblème potentiel avec cette approcheSupposons que vous ayez à la fois votre instruction PRINT et votre instruction RAISERROR l&#39;une après l&#39;autre, puis elles s&#39;impriment toutes les deux. Je suis sûr que cela a quelque chose à voir avec la mise en mémoire tampon, mais sachez simplement que cela peut arriver.\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample2]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;","- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Démarrer&#39;;\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;","RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;","- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Fin&#39;\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN","ALLER","EXEC [dbo].[PrintVsRaiseErrorSprocExample2]","Par conséquent, le travail ici est, n&#39;utilisez pas à la fois PRINT et RAISERROR, choisissez simplement l&#39;un sur l&#39;autre. Si vous voulez que votre sortie s&#39;affiche pendant l&#39;exécution d&#39;un sproc, utilisez RAISERROR WITH NOWAIT.","Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"],"content_blocks":[{"id":"text-1","type":"text","heading":"","plain_text":"[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]","html":"<p>[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]</p>"},{"id":"text-2","type":"text","heading":"","plain_text":"Avant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM. au dessus de. J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#39;est pas du tout ce qui a été demandé.\nPourquoi la sortie de l&#39;instruction PRINT ne s&#39;affiche-t-elle pas pendant l&#39;exécution de ma procédure stockée?La version courte de cette réponse est que vous envoyez l&#39;exécution de votre sproc au serveur SQL et il ne répondra pas tant qu&#39;il n&#39;aura pas terminé la transaction entière. Voici une meilleure réponse située sur ce lien externe.","html":"<p>Avant d&#039;en arriver à ma réponse réitérée; J&#039;avoue que la seule réponse que j&#039;accepterais ici est celle de KM. au dessus de. J&#039;ai voté contre les autres réponses parce qu&#039;aucune d&#039;entre elles n&#039;a répondu à la question posée ou qu&#039;elles n&#039;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#039;est pas du tout ce qui a été demandé.\nPourquoi la sortie de l&#039;instruction PRINT ne s&#039;affiche-t-elle pas pendant l&#039;exécution de ma procédure stockée?La version courte de cette réponse est que vous envoyez l&#039;exécution de votre sproc au serveur SQL et il ne répondra pas tant qu&#039;il n&#039;aura pas terminé la transaction entière. Voici une meilleure réponse située sur ce lien externe.</p>"},{"id":"text-3","type":"text","heading":"","plain_text":"Pour encore plus d&#39;opinions / observations, concentrez votre attention sur cet article SO ici.\nRegardez plus précisément cette réponse du même post par Phil_factor (Ha ha! Love the SQL humour)\nEn ce qui concerne la suggestion d&#39;utiliser RAISERROR WITH NOWAIT, regardez cette réponse du même message par JimCarden","html":"<p>Pour encore plus d&#039;opinions / observations, concentrez votre attention sur cet article SO ici.\nRegardez plus précisément cette réponse du même post par Phil_factor (Ha ha! Love the SQL humour)\nEn ce qui concerne la suggestion d&#039;utiliser RAISERROR WITH NOWAIT, regardez cette réponse du même message par JimCarden</p>"},{"id":"text-4","type":"text","heading":"","plain_text":"Ne fais pas ces choses","html":"<p>Ne fais pas ces choses</p>"},{"id":"text-5","type":"text","heading":"","plain_text":"Certaines personnes ont l&#39;impression qu&#39;elles peuvent simplement utiliser une instruction GO après leur instruction PRINT, mais vous NE POUVEZ PAS utiliser l&#39;instruction GO INSIDE d&#39;un sproc. Donc, cette solution est sortie.\nJe ne recommande pas SELECT-ing vos instructions d&#39;impression car cela va juste brouiller votre jeu de résultats avec des absurdités et si votre sproc est censé être consommé par un programme plus tard, vous devrez savoir quels jeux de résultats ignorer lors de la boucle à travers les résultats de votre lecteur de données. C&#39;est juste une mauvaise idée, alors ne le faites pas.\nUn autre problème avec SELECT-ING vos instructions d&#39;impression est qu&#39;elles n&#39;apparaissent pas toujours immédiatement. J&#39;ai eu différentes expériences avec cela pour différentes exécutions, alors ne vous attendez pas à une quelconque cohérence avec cette méthodologie.","html":"<p>Certaines personnes ont l&#039;impression qu&#039;elles peuvent simplement utiliser une instruction GO après leur instruction PRINT, mais vous NE POUVEZ PAS utiliser l&#039;instruction GO INSIDE d&#039;un sproc. Donc, cette solution est sortie.\nJe ne recommande pas SELECT-ing vos instructions d&#039;impression car cela va juste brouiller votre jeu de résultats avec des absurdités et si votre sproc est censé être consommé par un programme plus tard, vous devrez savoir quels jeux de résultats ignorer lors de la boucle à travers les résultats de votre lecteur de données. C&#039;est juste une mauvaise idée, alors ne le faites pas.\nUn autre problème avec SELECT-ING vos instructions d&#039;impression est qu&#039;elles n&#039;apparaissent pas toujours immédiatement. J&#039;ai eu différentes expériences avec cela pour différentes exécutions, alors ne vous attendez pas à une quelconque cohérence avec cette méthodologie.</p>"},{"id":"text-6","type":"text","heading":"","plain_text":"Alternative à IMPRIMER à l&#39;intérieur d&#39;une procédure stockéeÀ mon avis, c&#39;est vraiment une sorte de travail dégoûtant parce que la syntaxe est déroutante dans le contexte dans lequel elle est utilisée, mais qui sait peut-être qu&#39;elle sera mise à jour à l&#39;avenir par Microsoft. Je n&#39;aime tout simplement pas l&#39;idée de générer une erreur dans le seul but d&#39;imprimer les informations de débogage &#8230;","html":"<p>Alternative à IMPRIMER à l&#039;intérieur d&#039;une procédure stockéeÀ mon avis, c&#039;est vraiment une sorte de travail dégoûtant parce que la syntaxe est déroutante dans le contexte dans lequel elle est utilisée, mais qui sait peut-être qu&#039;elle sera mise à jour à l&#039;avenir par Microsoft. Je n&#039;aime tout simplement pas l&#039;idée de générer une erreur dans le seul but d&#039;imprimer les informations de débogage &#8230;</p>"},{"id":"text-7","type":"text","heading":"","plain_text":"Il semble que le seul moyen de contourner ce problème est d&#39;utiliser, comme cela a déjà été expliqué à plusieurs reprises, RAISERROR WITH NOWAIT. Je donne un exemple et souligne un petit problème avec cette approche:\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;","html":"<p>Il semble que le seul moyen de contourner ce problème est d&#039;utiliser, comme cela a déjà été expliqué à plusieurs reprises, RAISERROR WITH NOWAIT. Je donne un exemple et souligne un petit problème avec cette approche:\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;</p>"},{"id":"text-8","type":"text","heading":"","plain_text":"- Cela imprimera immédiatement\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;","html":"<p>- Cela imprimera immédiatement\n    RAISERROR (&#039;RE Start&#039;, 0, 1) AVEC NOWAIT\n    SELECT 1;</p>"},{"id":"text-9","type":"text","heading":"","plain_text":"- Délai de cinq secondes pour simuler une exécution longue\n    RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;","html":"<p>- Délai de cinq secondes pour simuler une exécution longue\n    RETARD D&#039;ATTENTE &#039;00: 00: 05 &#039;</p>"},{"id":"text-10","type":"text","heading":"","plain_text":"- Cela s&#39;imprimera après le délai de cinq secondes\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN","html":"<p>- Cela s&#039;imprimera après le délai de cinq secondes\n    RAISERROR (&#039;RE End&#039;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN</p>"},{"id":"text-11","type":"text","heading":"","plain_text":"ALLER","html":"<p>ALLER</p>"},{"id":"text-12","type":"text","heading":"","plain_text":"EXEC [dbo].[PrintVsRaiseErrorSprocExample]","html":"<p>EXEC [dbo].[PrintVsRaiseErrorSprocExample]</p>"},{"id":"text-13","type":"text","heading":"","plain_text":"Les deux résultats de l&#39;instruction SELECT ne s&#39;afficheront qu&#39;une fois l&#39;exécution terminée et le impression les instructions s&#39;afficheront dans l&#39;ordre indiqué ci-dessus.\nProblème potentiel avec cette approcheSupposons que vous ayez à la fois votre instruction PRINT et votre instruction RAISERROR l&#39;une après l&#39;autre, puis elles s&#39;impriment toutes les deux. Je suis sûr que cela a quelque chose à voir avec la mise en mémoire tampon, mais sachez simplement que cela peut arriver.\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample2]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;","html":"<p>Les deux résultats de l&#039;instruction SELECT ne s&#039;afficheront qu&#039;une fois l&#039;exécution terminée et le impression les instructions s&#039;afficheront dans l&#039;ordre indiqué ci-dessus.\nProblème potentiel avec cette approcheSupposons que vous ayez à la fois votre instruction PRINT et votre instruction RAISERROR l&#039;une après l&#039;autre, puis elles s&#039;impriment toutes les deux. Je suis sûr que cela a quelque chose à voir avec la mise en mémoire tampon, mais sachez simplement que cela peut arriver.\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample2]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;</p>"},{"id":"text-14","type":"text","heading":"","plain_text":"- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Démarrer&#39;;\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;","html":"<p>- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#039;P Démarrer&#039;;\n    RAISERROR (&#039;RE Start&#039;, 0, 1) AVEC NOWAIT\n    SELECT 1;</p>"},{"id":"text-15","type":"text","heading":"","plain_text":"RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;","html":"<p>RETARD D&#039;ATTENTE &#039;00: 00: 05 &#039;</p>"},{"id":"text-16","type":"text","heading":"","plain_text":"- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Fin&#39;\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN","html":"<p>- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#039;P Fin&#039;\n    RAISERROR (&#039;RE End&#039;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN</p>"},{"id":"text-17","type":"text","heading":"","plain_text":"ALLER","html":"<p>ALLER</p>"},{"id":"text-18","type":"text","heading":"","plain_text":"EXEC [dbo].[PrintVsRaiseErrorSprocExample2]","html":"<p>EXEC [dbo].[PrintVsRaiseErrorSprocExample2]</p>"},{"id":"text-19","type":"text","heading":"","plain_text":"Par conséquent, le travail ici est, n&#39;utilisez pas à la fois PRINT et RAISERROR, choisissez simplement l&#39;un sur l&#39;autre. Si vous voulez que votre sortie s&#39;affiche pendant l&#39;exécution d&#39;un sproc, utilisez RAISERROR WITH NOWAIT.","html":"<p>Par conséquent, le travail ici est, n&#039;utilisez pas à la fois PRINT et RAISERROR, choisissez simplement l&#039;un sur l&#039;autre. Si vous voulez que votre sortie s&#039;affiche pendant l&#039;exécution d&#039;un sproc, utilisez RAISERROR WITH NOWAIT.</p>"},{"id":"text-20","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":"[bzkshopping keyword= »Minecraft » count= »8&Prime; template= »grid »]"},{"id":"text-2","heading":"Text","content":"Avant d&#39;en arriver à ma réponse réitérée; J&#39;avoue que la seule réponse que j&#39;accepterais ici est celle de KM. au dessus de. J&#39;ai voté contre les autres réponses parce qu&#39;aucune d&#39;entre elles n&#39;a répondu à la question posée ou qu&#39;elles n&#39;étaient pas adéquates. La sortie PRINT apparaît effectivement dans la fenêtre Message, mais ce n&#39;est pas du tout ce qui a été demandé.\nPourquoi la sortie de l&#39;instruction PRINT ne s&#39;affiche-t-elle pas pendant l&#39;exécution de ma procédure stockée?La version courte de cette réponse est que vous envoyez l&#39;exécution de votre sproc au serveur SQL et il ne répondra pas tant qu&#39;il n&#39;aura pas terminé la transaction entière. Voici une meilleure réponse située sur ce lien externe."},{"id":"text-3","heading":"Text","content":"Pour encore plus d&#39;opinions / observations, concentrez votre attention sur cet article SO ici.\nRegardez plus précisément cette réponse du même post par Phil_factor (Ha ha! Love the SQL humour)\nEn ce qui concerne la suggestion d&#39;utiliser RAISERROR WITH NOWAIT, regardez cette réponse du même message par JimCarden"},{"id":"text-4","heading":"Text","content":"Ne fais pas ces choses"},{"id":"text-5","heading":"Text","content":"Certaines personnes ont l&#39;impression qu&#39;elles peuvent simplement utiliser une instruction GO après leur instruction PRINT, mais vous NE POUVEZ PAS utiliser l&#39;instruction GO INSIDE d&#39;un sproc. Donc, cette solution est sortie.\nJe ne recommande pas SELECT-ing vos instructions d&#39;impression car cela va juste brouiller votre jeu de résultats avec des absurdités et si votre sproc est censé être consommé par un programme plus tard, vous devrez savoir quels jeux de résultats ignorer lors de la boucle à travers les résultats de votre lecteur de données. C&#39;est juste une mauvaise idée, alors ne le faites pas.\nUn autre problème avec SELECT-ING vos instructions d&#39;impression est qu&#39;elles n&#39;apparaissent pas toujours immédiatement. J&#39;ai eu différentes expériences avec cela pour différentes exécutions, alors ne vous attendez pas à une quelconque cohérence avec cette méthodologie."},{"id":"text-6","heading":"Text","content":"Alternative à IMPRIMER à l&#39;intérieur d&#39;une procédure stockéeÀ mon avis, c&#39;est vraiment une sorte de travail dégoûtant parce que la syntaxe est déroutante dans le contexte dans lequel elle est utilisée, mais qui sait peut-être qu&#39;elle sera mise à jour à l&#39;avenir par Microsoft. Je n&#39;aime tout simplement pas l&#39;idée de générer une erreur dans le seul but d&#39;imprimer les informations de débogage &#8230;"},{"id":"text-7","heading":"Text","content":"Il semble que le seul moyen de contourner ce problème est d&#39;utiliser, comme cela a déjà été expliqué à plusieurs reprises, RAISERROR WITH NOWAIT. Je donne un exemple et souligne un petit problème avec cette approche:\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;"},{"id":"text-8","heading":"Text","content":"- Cela imprimera immédiatement\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;"},{"id":"text-9","heading":"Text","content":"- Délai de cinq secondes pour simuler une exécution longue\n    RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;"},{"id":"text-10","heading":"Text","content":"- Cela s&#39;imprimera après le délai de cinq secondes\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN"},{"id":"text-11","heading":"Text","content":"ALLER"},{"id":"text-12","heading":"Text","content":"EXEC [dbo].[PrintVsRaiseErrorSprocExample]"},{"id":"text-13","heading":"Text","content":"Les deux résultats de l&#39;instruction SELECT ne s&#39;afficheront qu&#39;une fois l&#39;exécution terminée et le impression les instructions s&#39;afficheront dans l&#39;ordre indiqué ci-dessus.\nProblème potentiel avec cette approcheSupposons que vous ayez à la fois votre instruction PRINT et votre instruction RAISERROR l&#39;une après l&#39;autre, puis elles s&#39;impriment toutes les deux. Je suis sûr que cela a quelque chose à voir avec la mise en mémoire tampon, mais sachez simplement que cela peut arriver.\nMODIFIER\n--CRÉER\n    PROCÉDURE [dbo].[PrintVsRaiseErrorSprocExample2]\nCOMME\nCOMMENCER\n    SET NOCOUNT ON;"},{"id":"text-14","heading":"Text","content":"- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Démarrer&#39;;\n    RAISERROR (&#39;RE Start&#39;, 0, 1) AVEC NOWAIT\n    SELECT 1;"},{"id":"text-15","heading":"Text","content":"RETARD D&#39;ATTENTE &#39;00: 00: 05 &#39;"},{"id":"text-16","heading":"Text","content":"- Les instructions PRINT et RAISERROR afficheront\n    IMPRIMER &#39;P Fin&#39;\n    RAISERROR (&#39;RE End&#39;, 0, 1) AVEC NOWAIT\n    SELECT 2;\nFIN"},{"id":"text-17","heading":"Text","content":"ALLER"},{"id":"text-18","heading":"Text","content":"EXEC [dbo].[PrintVsRaiseErrorSprocExample2]"},{"id":"text-19","heading":"Text","content":"Par conséquent, le travail ici est, n&#39;utilisez pas à la fois PRINT et RAISERROR, choisissez simplement l&#39;un sur l&#39;autre. Si vous voulez que votre sortie s&#39;affiche pendant l&#39;exécution d&#39;un sproc, utilisez RAISERROR WITH NOWAIT."},{"id":"text-20","heading":"Text","content":"Click to rate this post!\n                                   \n                               [Total: 0  Average: 0]"}],"media":{"primary_image":"https://tutos-gameserver.fr/wp-content/uploads/2021/02/apple-touch-icon@2.png"},"relations":[{"rel":"canonical","href":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/llm","type":"text/html"},{"rel":"alternate","href":"https://tutos-gameserver.fr/2021/02/05/serveur-sql-comment-deboguer-des-procedures-stockees-avec-des-instructions-dimpression-bien-choisir-son-serveur-d-impression/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}