Maison >base de données >tutoriel mysql >Comment récupérer les résultats de Dynamic SQL dans les procédures stockées SQL Server ?

Comment récupérer les résultats de Dynamic SQL dans les procédures stockées SQL Server ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-11 10:28:42440parcourir

How to Retrieve Results from Dynamic SQL in SQL Server Stored Procedures?

Récupérer les résultats SQL dynamiques des procédures stockées SQL Server

Dans une procédure stockée, après l'exécution de SQL dynamique, les résultats doivent généralement être récupérés pour un traitement ultérieur. Un exemple consiste à déterminer le nombre d'enregistrements produits par une requête SQL dynamique.

Exécuter du SQL dynamique

Dans l'extrait de code fourni, utilisez sp_executesql pour exécuter du SQL dynamique afin de déterminer le nombre de clients dans une ville spécifique. Dynamic SQL est représenté par @sqlCommand et accepte les paramètres @city.

Résultats de recherche

Afin de récupérer la valeur de comptage comme valeur de retour de la procédure stockée, les étapes suivantes sont suivies :

  1. Déclarez un nouveau intparamètre de type@cnt pour contenir la valeur de comptage.
  2. Modifiez l'instruction SQL dynamique et définissez la variable de sortie @cnt sur la valeur COUNT(*).
  3. Appelez sp_executesql en utilisant du SQL dynamique modifié et spécifiez @cnt comme paramètre de sortie dans la liste des paramètres.

Exemple de code

<code class="language-sql">DECLARE @sqlCommand NVARCHAR(1000);
DECLARE @count INT;
DECLARE @city VARCHAR(75);
SET @city = 'New York';

SET @sqlCommand = 'SELECT @cnt=COUNT(*) FROM customers WHERE City = @city';
EXECUTE sp_executesql @sqlCommand, N'@city nvarchar(75), @cnt int OUTPUT', @city = @city, @cnt = @count OUTPUT;

SELECT @count;</code>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn