Ceci est mon codeOPENQUERY (SERVERNAME, StoredProcedure) Erreur de syntaxe
DECLARE @stringvariable nvarchar(200) = 'Hello';
DECLARE @sql nvarchar(2000) = SELECT * INTO ##global FROM OPENQUERY(DB1, ''EXEC GETCASE ''' + @stringvariable + ''''')'
impression @sql
retourne une requête correctement formaté, mais SQL Server n'aime pas @stringvariable
et renvoie une erreur
Msg 102 , Niveau 15, État 1, Ligne 11
Syntaxe incorrecte près de 'Hello'.
Voici ce que la requête ressemble émis
SELECT * INTO ##global FROM OPENQUERY(DB1, 'EXEC GETCASE 'Hello'')
Comment puis-je éviter cette erreur? Il semble que parce que ma procédure stockée prend un paramètre de chaîne, il rejette la requête. J'ai lu que OPENQUERY
ne supporte pas les variables, mais j'ai paramétré la variable donc ça devrait marcher?
Appréciez votre aide!
Salut TT merci pour votre réponse, j'utilise le nom de base de données, et le nom du schéma, mais je n'ai pas ajouté cela dans mon code Stackoverflow. J'ai suivi votre format mais je reçois toujours la même erreur. La sortie imprimée est la même que précédemment (sauf qu'elle affiche maintenant 'SET FMTONLY OFF') –
@GovindRai Mise à jour avec quelque chose qui fonctionne sur mon système (2012). –
@GovindRai encore un changement dans le remplacement des guillemets simples dans la variable. SQL dynamique peut devenir moche =) –