2009-10-14 8 views
1

J'utilise DbConnection.GetSchema ("Databases") pour récupérer une liste de bases de données à partir d'une connexion donnée, et cela fonctionne comme prévu. Cependant, je veux trier les db de système de cette liste, car ils ne sont pas valables pour ce que j'ai l'intention de faire avec cette liste.Utilisation de DbConnection.GetSchema() pour récupérer tous les dbs système sauf

Est-ce que quelqu'un connait un moyen de le faire?

Répondre

1

MISE À JOUR

Ne peut restreindre par nom lors de la récupération des informations de la « bases de données » méta-collection à l'aide GetSchema(), qui ne permet pas de filtrer système BDs.

Il y a une surcharge qui vous permet de spécifier une liste des restrictions sur les données renvoyées, ce qui devrait vous permettre de filtrer système BDs:

DbConnection.GetSchema(String, String[])

Documentation on Restrictions

How to use the method in practice

+0

Oui, je connais ces liens! Malheureusement, la seule restriction disponible pour le schéma des bases de données est le nom. Est-ce que j'ai raté quelque chose? – Argo

+0

Non, vous avez raison, je supposais que vous auriez la possibilité de restreindre les bases de données en fonction de plus de nom, mais il ne semble pas que vous le pouvez. Si vous utilisez SQL Server 2005/2008, vous pouvez récupérer les informations souhaitées à partir d'une vue système à l'aide d'une requête similaire à: SELECT * FROM sys.databases où owner_sid <> 0x01 –

+0

ou SELECT * FROM sys.sysdatabases où sid < > 0x01 sur SQL Server 2000. Je ne suis pas familier avec d'autres systèmes de SGBDR mais je suppose qu'ils fournissent des objets système similaires que vous pourriez utiliser. –

Questions connexes