Maison >base de données >tutoriel mysql >Comment gérer les paramètres dynamiques dans les requêtes OPENROWSET ?

Comment gérer les paramètres dynamiques dans les requêtes OPENROWSET ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-04 01:04:40225parcourir

How to Handle Dynamic Parameters in OPENROWSET Queries?

Paramétrage dynamique dans les requêtes OPENROWSET

Lorsque vous tentez d'utiliser des requêtes OPENROWSET qui incorporent des variables, de nombreuses personnes rencontrent une erreur courante impliquant une « syntaxe incorrecte près de « ». Pour résoudre ce problème, il est impératif de comprendre les limitations associées aux variables dans les requêtes OPENROWSET.

Contrairement à d'autres fonctions de base de données, OPENROWSET ne permet pas l'inclusion directe d'expressions ou de variables dans ses arguments. Cela signifie que vous ne pouvez pas construire dynamiquement l'instruction OPENROWSET à l'aide de variables.

Pour contourner cette limitation, une stratégie appropriée consiste à créer une chaîne SQL dynamique qui construit dynamiquement l'instruction OPENROWSET. Cette chaîne peut ensuite être exécutée à l'aide de l'instruction EXEC. Voici une illustration :

Declare @ID int
Declare @sql nvarchar(max)
Set @ID=1
Set @sql='SELECT * 
FROM OPENROWSET(
               ''SQLNCLI'',
               ''DRIVER={SQL Server};'',
               ''EXEC dbo.usp_SO @ID =' + convert(varchar(10),@ID) + ''')'

-- Print @sql
 Exec(@sql)

Dans cet exemple, une chaîne SQL dynamique "@sql" est construite en fonction du paramètre fourni "@ID". Par la suite, l'instruction EXEC exécute cette chaîne SQL dynamique, exécutant efficacement la requête OPENROWSET souhaitée avec la valeur de paramètre spécifiée.

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