2013-05-27 1 views
1

En raison de Linked Server n'est pas facile d'envoyer une requête openrowset Je me connecte au serveur Sql distant directement via le mode SQLCMD. Mais c'est OK en utilisant Query Analyzer. Quand je mets le code à la procédure stockée je ne peux même pas l'enregistrer:Appeler les commandes sqlcmd dans le code de procédure stockée

:Connect x.x.x.x -U sa -P password 
select * 
from openrowset('VFPOLEDB','\\share\db\s_object.dbf';''; 
    '','SELECT * FROM s_object where i_class=21 order by 1') 

syntaxe incorrecte près de « : ».

+0

SQL Server Management Studio a un [mode compatible sqlcmd] (http://msdn.microsoft.com/en-us/library/ms174187.aspx) . L'ancien analyseur de requêtes a un mode similaire, mais vous devez parler aux personnes âgées pour voir comment l'activer ... –

Répondre

2

Mode sqlcmd :connect syntaxe est valable dans SSMS et QA lorsque le mode sqlcmd est activé, mais il sera toujours une commande côté client , exécuté par SSMS ou QA lui-même et jamais envoyé au moteur. En tant que tel, il ne peut en aucun cas être intégré dans un module côté serveur, comme une procédure stockée. Si vous voulez vraiment dire la procédure stockée alors pas étonnant que l'erreur de syntaxe ...

+0

Je suis désolé pour un très long délai après votre réponse détaillée - Je cherchais toute autre solution pour mettre en œuvre openrowset/openquery sur le serveur lié. En fait, vous avez répondu à ma question et j'ai besoin d'ouvrir un autre pas pour trouver une solution pour cela. – revoua

Questions connexes