2017-06-29 3 views
0

Dans T-SQL, je suis en train de faire quelque chose comme: -Comment peut-on sélectionner le nom du serveur dans un sys objets requête

select * from [server_name].dbo.sys.objects 

mais je continue à obtenir l'erreur « Nom d'objet incorrect .. »

Je veux finalement de comparer toutes les bases de données des deux serveurs (quelque chose comme ..): -

Select * from [server1].dbo.Sys.Databases d1 
cross join [server2].dbo.Sys.Databases d2 
on d1.database_id = d2.database_id 

Répondre

1

utiliser.

select from [server_name].[base_name].sys.objects 
+0

quel serait le '[base_name]'? l'utilisation de 'dbo' me donne l'erreur ci-dessus' 'nom d'objet invalide .. '' – heyNow

+0

Le nom de base est le nom de la base que vous voulez utiliser sur l'autre serveur. –

+0

umm, mais qu'est-ce que c'est si ce n'est pas dbo? Comment puis-je le découvrir? – heyNow

1

Vous pouvez utiliser des serveurs liés pour sélectionner des données à partir de bases de données sur deux serveurs différents dans une même requête.

Vous pouvez configurer des serveurs liés via SQL Server Management Studio sous Objets serveur -> Serveurs liés. Une fois que vous avez lié [server1] à [server2], vous devriez être en mesure d'exécuter votre requête.