2011-08-04 3 views
5

Je souhaite construire la requête utilisée avec la méthode OPENROWSET.SQL: OPENROWSET, impossible de créer la chaîne de requête?

Exemple:

SELECT * 
FROM 
OPENROWSET 
('SQLOLEDB', 'srv'; 'login'; 'mdp'; 
'SELECT * 
FROM Case 
WHERE ID = ' + @caseID) 

Mais quand je fais ce que je reçois l'erreur: syntaxe incorrecte près de '+'

Comment puis-je construire la requête? Remerciez

Répondre

6

Bien que la requête dans OPENROWSET soit spécifiée comme une chaîne et par ce moyen ressemble beaucoup à une requête dynamique, la syntaxe ne lui permet pas d'être construite également, en parties.

Je crains, vous devrez construire une requête dynamique, qui appellera OPENROWSET, quelque chose comme ceci:

SET @sql = ' 
    SELECT * 
    FROM 
    OPENROWSET 
    (''SQLOLEDB'', ''srv''; ''login''; ''mdp''; 
    ''SELECT * 
    FROM Case 
    WHERE ID = ' + @caseID + ''')'; 
EXEC(@sql);