2008-12-23 8 views
8

Je peux utiliser:Comment afficher une liste de tables dans une autre base de données?

select * from sys.tables 

en MSSQL pour afficher la liste de toutes les tables de la base de données actuelle. Y at-il de toute façon je peux utiliser une syntaxe similaire pour afficher la liste des tables dans une autre base de données?

dire que je suis avec l'aide d'un:

déclaration
use A 

, puis-je afficher les tables de base de données B?

Répondre

15

Cela me le fait pour (MS SQL 2005 et plus récent):

select * from your_database_name.sys.tables 

Gardez à l'esprit que vous (ou quel que soit le contexte d'authentification que vous utilisez) aurez toujours besoin l'autorisation de lecture sur cette base de données.

Pour utiliser votre exemple:

use a; 
go 

select * from sys.tables; -- selects table info from a 
select * from b.sys.tables; -- selects table info from b 
+1

La question et la réponse devrait être précisée comme étant applicable à MS-SQL 2005 et plus récent. –

0

Une autre possibilité est d'utiliser:

select * from your_database_name.information_schema.tables