Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Répertorier toutes les bases de données d'un serveur lié dans SQL Server (exemples T-SQL)

Dans SQL Server, vous pouvez utiliser les sp_catalogs procédure stockée système pour renvoyer une liste complète des bases de données dans un serveur lié.

Strictement parlant, cette procédure stockée renvoie la liste des catalogues du serveur lié spécifié. Ceci est équivalent aux bases de données dans SQL Server.

Syntaxe

La syntaxe ressemble à ceci :

sp_catalogs [ @server_name = ] 'linked_svr'

Le @server_name l'argument est le nom du serveur lié dont vous voulez obtenir la liste des bases de données.

Exemple

Voici un exemple de renvoi d'une liste de bases de données à partir d'un serveur lié appelé Homer.

EXEC sp_catalogs @server_name = 'Homer';

Il peut également être exécuté comme ceci :

EXEC sp_catalogs 'Homer';

Résultat :

+----------------------+---------------+
| CATALOG_NAME         | DESCRIPTION   |
|----------------------+---------------|
| BandTest             | NULL          |
| CompareTypes         | NULL          |
| EMS                  | NULL          |
| ExamineDateTime2     | NULL          |
| FK_Test              | NULL          |
| master               | NULL          |
| model                | NULL          |
| msdb                 | NULL          |
| Music                | NULL          |
| PK_Test              | NULL          |
| tempdb               | NULL          |
| Test                 | NULL          |
| Test2                | NULL          |
| WideWorldImportersDW | NULL          |
+----------------------+---------------+

Dans ce cas, il y a 14 bases de données dans le serveur lié.

La procédure stockée renvoie le nom du catalogue/base de données et sa description, s'il y en a une. Dans ce cas, aucune description n'est disponible pour aucune des bases de données.