Maison >base de données >tutoriel mysql >Comment gérer les paramètres dynamiques 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!