2009-03-18 5 views

Répondre

0

Vous pouvez utiliser le Linked Server feature de SQL Server dans votre procédure stockée:

Une configuration de serveur lié permet Microsoft SQL Server pour exécuter commandes par rapport aux données OLE DB sources sur différents serveurs. Les serveurs liés offrent ces avantages:

  • accès au serveur à distance

  • La capacité à émettre des requêtes distribuées , mises à jour, les commandes et transactions sur des données hétérogènes sources à travers l'entreprise.

  • Possibilité d'adresser des sources de données diverses de manière similaire.

Vous devez écrire votre requête dans votre procédure stockée ainsi par exemple:

SELECT * 
    FROM MyRemoteServer.MyDB.dbo.MyView 
    WHERE MyViewColumnX = @ParameterY 
+0

Fin. Qu'en est-il des performances? temps de retard ... etc – Dhana

+0

Je l'ai utilisé dans différentes occasions et c'était bien pour moi. Mais vous devez voir cela pour votre cas. Cela peut dépendre de la manière dont les serveurs sont connectés, etc. Essayez d'abord les requêtes dans l'Analyseur de requêtes et voyez les implications sur les performances. – splattne

+0

attention à mettre les noms de domaine complets du serveur lié dans les procs stockés! par expérience, c'est une de ces choses qui glisse sur le net lorsque les bases de données migrent vers de nouveaux serveurs. Tout d'un coup les processus commencent à échouer sur d'autres machines. –

0

Créer une linked server sur votre serveur principal SQL, ce qui crée le lien vers votre serveur distant.

Le fait que vous ayez une vue sur le serveur distant est bon, il fournit une couche d'abstraction à vos données. Vous pouvez spécifier un nom de connexion pour le serveur lié autorisé à lire cette vue uniquement. Vous pouvez également modifier la vue dans le futur (ajouter une clause "where" par exemple pour améliorer les performances) sans avoir à modifier les frontaux.

Je voudrais aussi ajouter une autre vue sur votre serveur principal qui sélectionne de la vue sur votre serveur distant: -

créer vue vwMain comme select col1, col2 de RemoteServer.DB.dbo.RemoteView. De cette façon, vous pouvez référencer vwMain dans tout votre code (dans de nombreuses procédures stockées) sans référencer continuellement le serveur distant. De cette façon, si votre serveur distant change ou si vous déplacez les données vers votre serveur principal, il s'agit d'une simple modification de vwMain et tout votre code continue de fonctionner.

Questions connexes