Utilisation d'une variable dans une requête OPENROWSET
Les tentatives d'utilisation d'une expression dans une requête OPENROWSET entraînent souvent une erreur telle que « Syntaxe incorrecte à proximité ' '" En effet, OPENROWSET ne prend pas en charge l'utilisation d'expressions pour spécifier des paramètres.
Pour Pour résoudre ce problème, utilisez SQL dynamique pour créer la chaîne de requête OPENROWSET avec la valeur du paramètre intégrée. Par exemple, le code suivant montre comment utiliser le SQL dynamique pour transmettre un paramètre entier nommé @ID à la procédure stockée sProc1 dans la requête OPENROWSET :
DECLARE @ID int DECLARE @sql nvarchar(max) SET @ID = 1 SET @sql = 'SELECT * FROM OPENROWSET( ''SQLNCLI'', ''DRIVER={SQL Server};'', ''EXEC dbo.sProc1 @ID = ' + CAST(@ID AS VARCHAR(10)) + ''')' -- Print @sql PRINT @sql -- Execute dynamic SQL EXEC(@sql)
Dans cet exemple, la valeur de la variable @ID est inséré dynamiquement dans la chaîne de requête OPENROWSET à l'aide de la fonction CAST pour convertir la valeur entière en VARCHAR(10). L'instruction SQL dynamique résultante est ensuite imprimée sur la console et exécuté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!