Stockage des résultats de requêtes SQL dynamiques dans des variables SQL Server
Travailler avec du SQL dynamique dans SQL Server nécessite souvent de capturer les résultats de la requête dans des variables pour un traitement ultérieur. Ceci est particulièrement utile lorsque la requête dynamique renvoie une seule valeur.
Considérez un scénario dans lequel une requête SQL dynamique compte les clients dans une ville spécifique. Le défi consiste à récupérer efficacement ce décompte et à l'attribuer à une variable dans une procédure stockée.
La procédure stockée système sp_executesql
, utilisée avec un paramètre de sortie, fournit une solution. Cela permet d'affecter directement le résultat de la requête SQL dynamique à une variable.
Voici un exemple de code amélioré montrant comment stocker le nombre dans la variable @count
:
DECLARE @sqlCommand NVARCHAR(1000); DECLARE @count INT; DECLARE @city VARCHAR(75); SET @city = 'New York'; SET @sqlCommand = N'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;
Ce code révisé définit la variable @cnt
dans le SQL dynamique sur le résultat COUNT(*)
. sp_executesql
exécute la requête en utilisant les paramètres de sortie @city
et @cnt
. Le résultat est ensuite soigneusement stocké dans la variable @count
.
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!