quering base de données distante à l'aide de sql server?
J'ai utilisé sp_addlinkedserver pour accéder à des ordinateurs distants db maintenant, je suis en train d'écrire des requêtes explicites sur la base de données comme,
select * from [server\instance].la base de données.propriétaire.tablename
Maintenant, avec cela,
- [Server\instance] : ceci doit être prévu expressément
- [base de données] : peut-on trouver les bases de données sur l'instance spécifiée à l'aide de la requête comme ms_ForEachDB ?
- [le propriétaire] : Peut-on trouver le propriétaire de base de données nom à l'aide de la requête ?
Si ces valeurs sont trouvées à l'aide de requêtes, nous avons besoin d'utiliser EXEC() pour exécuter cette ou nous pouvons encore obtenir l'aide de nice requêtes ?
Merci à tous,
Vous devez vous connecter pour publier un commentaire.
Le "gentil" format que vous mentionnez est tout simplement une 4 de la partie de l'objet de référence.
3 partie
2 partie
Si vous souhaitez modifier dynamiquement tout le serveur, db ou un schéma de valeurs, alors vous avez une option:
Toutefois, si vous avez seulement accès stockées procs à distance...
Toutefois, l'évolution des composantes de la référence d'objet n'a pas de sens sans doute: si vous savez que vous allez interroger une table puis il suffit d'appeler la table dans la base de données...
vous devriez faire une chaîne de requête et ensuite l'exécuter par
exec()
fonction.arriver nom du serveur :
arriver courant db nom :
Vous n'avez pas à utiliser
EXEC
vous pouvez utiliser quelque chose commeselect * from openquery(MyLinkedServer,@sql)
Bien que je préfèreEXEC(@sql) AT MyLinkedServer
Mais tous les travaux
S'il arrive que vous avez besoin d'utiliser une sorte de variable dans vos arguments(par exemple, recueillir à distance du serveur de mises à jour depuis hier):
______
Où:
"OPENQUERY n'accepte pas de variables pour ses arguments.": Voir Ici (MSDN: OPENQUERY (Transact-SQL)).