<p>En utilisant <code>SELECT</code></p>
<pre><code class="lang-auto">SELECT @ModelID = m.modelid
FROM MODELS m
WHERE m.areaid = 'South Coast'
</code></pre>
<p>En utilisant <code>SET</code></p>
<pre><code class="lang-auto">SET @ModelID = (SELECT m.modelid
FROM MODELS m
WHERE m.areaid = 'South Coast');
</code></pre>
<p>Ensuite, vous pouvez utiliser <code>SELECT</code> pour afficher la valeur de <code>@ModelID</code> ou utiliser la variable dans votre code.</p>
<pre><code class="lang-auto">SELECT @ModelID
</code></pre>
<p><a href="https://stackoverflow.com/questions/3945361/tsql-set-vs-select-when-assigning-variables">Consultez cette question pour la différence entre l’utilisation de SELECT et SET en TSQL</a>.</p>
<p>Avertissement</p>
<p>Si cette instruction <code>SELECT</code> retourne <em>plusieurs valeurs</em> (ce qui est problématique en soi) :</p>
<ul>
<li>
<p>En utilisant <code>SELECT</code>, la variable reçoit la dernière valeur retournée (comme l’a dit womp), sans aucune erreur ni avertissement (cela peut causer des bogues logiques)</p>
</li>
<li>
<p>La requête <code>SET</code> retourne une erreur uniquement si vous NE mettez PAS le point-virgule à la fin de la requête</p>
</li>
</ul>