{"id":977,"date":"2022-11-14T06:57:00","date_gmt":"2022-11-14T05:57:00","guid":{"rendered":"https:\/\/expert-only.com\/prep\/?p=977"},"modified":"2022-12-05T15:41:08","modified_gmt":"2022-12-05T14:41:08","slug":"retourner-des-variables-procedure-sql-server","status":"publish","type":"post","link":"https:\/\/expert-only.com\/fr\/t-sql\/retourner-des-variables-procedure-sql-server\/","title":{"rendered":"Retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server et OUTPUT"},"content":{"rendered":"\n<h4 class=\"has-text-align-center wp-block-heading\"><strong><em>Comment cr\u00e9er une proc\u00e9dure stock\u00e9e SQL Server pour retourner des variables avec OUTPUT ?<\/em><\/strong><\/h4>\n\n\n\n<p>Exemple de code T-SQL pour retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server \u00e0 travers les param\u00e8tres de sortie. La mise en place, l&rsquo;instanciation&nbsp;et l&rsquo;utilisation des param\u00e8tres de sortie d&rsquo;une proc\u00e9dure stock\u00e9e est similaire \u00e0 celle des param\u00e8tres d&rsquo;entr\u00e9e. Utiliser la clause OUTPUT apr\u00e8s le nom du param\u00e8tre pour indiquer le retour.<\/p>\n\n\n\n<p>La clause de sortie peut \u00eatre sp\u00e9cifi\u00e9 en utilisant soit le mot-cl\u00e9 <em>OUTPUT<\/em> ou tout simplement <em>OUT<\/em>. Ce tutoriel explique pas \u00e0 pas comment r\u00e9cup\u00e9rer et stocker le r\u00e9sultat d&rsquo;une proc\u00e9dure stock\u00e9e apr\u00e8s une commande execute dans une variable SQL Server. En effet pendant l&rsquo;appel des commandes execute SQL ou encore EXEC, il est facile d&rsquo;afficher le r\u00e9sultat avec la fonction PRINT.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">1. Cr\u00e9er la table utilis\u00e9e par la proc\u00e9dure stock\u00e9e<\/h2>\n\n\n\n<p>Il est utile de r\u00e9cup\u00e9rer un r\u00e9sultat dans une variable pour l\u2019utiliser plusieurs fois \u00e0 la suite du code T-SQL. Tout d&rsquo;abord, cr\u00e9er la table des clients, le code d\u2019exemple pour la cr\u00e9ation de la table est disponible ici :<\/p>\n\n\n\n<p class=\"has-text-align-center\"><a href=\"https:\/\/expert-only.com\/t-sql\/creer-table-sql-server\/\">Script de cr\u00e9ation de la table Clients sous SQL Server<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"263\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/sql-server-exemple-table-clients.png\" alt=\"S\u00e9lection des donn\u00e9es depuis la table source de la proc\u00e9dure stock\u00e9e SQL Server\" class=\"wp-image-967\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/sql-server-exemple-table-clients.png 640w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/sql-server-exemple-table-clients-300x123.png 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><figcaption class=\"wp-element-caption\">S\u00e9lection des donn\u00e9es depuis la table source de la proc\u00e9dure stock\u00e9e SQL Server<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-2-procedure-t-sql-pour-retourner-des-variables-avec-output\">2. Proc\u00e9dure T-SQL pour retourner des variables avec OUTPUT<\/h2>\n\n\n\n<p>Deuxi\u00e8mement, utiliser ce code comme exemple. Cette proc\u00e9dure retourne en sortie le nom de la ville d&rsquo;un client dont le nom est pass\u00e9 en param\u00e8tre d&rsquo;entr\u00e9e. En effet, en T-SQL avec la commande EXEC, suivie du nom de la proc\u00e9dure, utiliser le mot clef \u00ab\u00a0OUTPUT\u00a0\u00bb. Cela permet de stocker le r\u00e9sultat depuis la proc\u00e9dure appel\u00e9e et de l&rsquo;envoyer vers l&rsquo;appelante.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">-- Cr\u00e9ation de la proc\u00e9dure stock\u00e9e avec la variable @VilleClient en OUTPUT\nCREATE PROCEDURE dbo.uspVilleClient\n  @NomClient\t\tnvarchar(20),\n  @VilleClient\tnvarchar(20) OUTPUT\nAS\n  SELECT \t@VilleClient= VILLE\n  FROM \tdbo.CLIENTS\n  WHERE \tNOM = @NomClient\nGO<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">3. Ex\u00e9cuter la proc\u00e9dure MS SQL avec OUTPUT en 3 \u00e9tapes<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>D\u00e9clarer une variable<\/strong> du m\u00eame type que le retour <a href=\"https:\/\/docs.microsoft.com\/fr-fr\/sql\/relational-databases\/stored-procedures\/return-data-from-a-stored-procedure?view=sql-server-ver15\" target=\"_blank\" rel=\"noreferrer noopener\">OUTPUT<\/a> et la colonne Ville, soit nvarchar(20) pour notre exemple.<\/li>\n\n\n\n<li><strong>Ex\u00e9cuter la proc\u00e9dure<\/strong> avec la commande EXEC.<\/li>\n\n\n\n<li><strong>S\u00e9lectionner la variable<\/strong> @VilleClient qui contient le r\u00e9sultat de la proc\u00e9dure stock\u00e9e.<\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"sql\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">-- Ex\u00e9cution de la proc\u00e9dure stock\u00e9e\nDECLARE @VilleClient nvarchar(20)\n\nEXEC\tdbo.uspVilleClient\n  @NomClient\t\t= 'SERGEI',\n  @VilleClient \t= @VilleClient OUTPUT\n\nSELECT \t@VilleClient as [Ville];\n<\/pre>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"569\" height=\"256\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/procedure-stockee-sql-server-valeur.png\" alt=\"Retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server depuis SSMS\" class=\"wp-image-978\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/procedure-stockee-sql-server-valeur.png 569w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/procedure-stockee-sql-server-valeur-300x135.png 300w\" sizes=\"auto, (max-width: 569px) 100vw, 569px\" \/><figcaption class=\"wp-element-caption\">Retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server depuis SSMS<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Pour conclure, le r\u00e9sultat de la proc\u00e9dure stock\u00e9e est la valeur de la ville pour le client s\u00e9lectionn\u00e9. Pour aller plus loin sur les proc\u00e9dures stock\u00e9es, voici comment <a href=\"https:\/\/expert-only.com\/transact-sql\/procedure-stockee-sql-server-avec-insert-into\/\">ins\u00e9rer des lignes depuis une proc\u00e9dure stock\u00e9e<\/a>. Cet exemple passe les valeurs en param\u00e8tres dans des variables. Pour d\u00e9couvrir d&rsquo;autres exemples de scripts, voici <a href=\"https:\/\/expert-only.com\/transact-sql\/modifier-une-procedure-stockee-sql-server\/\" target=\"_blank\" rel=\"noreferrer noopener\">comment modifier une proc\u00e9dure stock\u00e9e SQL Server<\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-tutoriels-sql-et-it wp-block-embed-tutoriels-sql-et-it\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"VWDXt2qOQn\"><a href=\"https:\/\/expert-only.com\/fr\/t-sql\/modifier-une-procedure-stockee-sql-server\/\">Comment modifier une proc\u00e9dure stock\u00e9e SQL Server ?<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u00ab\u00a0Comment modifier une proc\u00e9dure stock\u00e9e SQL Server ?\u00a0\u00bb &#8212; Tutoriels SQL et IT\" src=\"https:\/\/expert-only.com\/fr\/t-sql\/modifier-une-procedure-stockee-sql-server\/embed\/#?secret=PY9kajQ43F#?secret=VWDXt2qOQn\" data-secret=\"VWDXt2qOQn\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Comment cr\u00e9er une proc\u00e9dure stock\u00e9e SQL Server pour retourner des variables avec OUTPUT ? Exemple de code T-SQL pour retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server \u00e0 travers les param\u00e8tres de sortie. La mise en place, l&rsquo;instanciation&nbsp;et <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/fr\/t-sql\/retourner-des-variables-procedure-sql-server\/\" title=\"Retourner des variables avec une proc\u00e9dure stock\u00e9e SQL Server et OUTPUT\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":10697,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":{"0":"post-977","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-t-sql"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/comments?post=977"}],"version-history":[{"count":0,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/977\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media\/10697"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media?parent=977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/categories?post=977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/tags?post=977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}