Comment puis-je obtenir une liste de tous les schémas dans une base de données Sql Server
Je veux récupérer une liste de tous les schémas dans une base de données Sql Server. À l'aide de la ADO.NET
schéma d'extraction de l'API-je obtenir une liste de toutes les collections, mais il n'existe pas de collection 'Schémas'.
J'ai pu parcourir le 'Tables'
, 'Procedures'
collections (et d'autres si nécessaire) et d'obtenir une liste des noms de schéma, mais n'est-il pas plus facile/plus court moyen d'atteindre le même résultat?
Exemple: Pour la norme 'AdventureWorks'
base de données, j'aimerais aussi obtenir la liste ci - dbo,HumanResources,Person,Production,Purchasing,Sales
(j'ai omis les autres types de schem des noms comme db_accessadmin
,db_datareader
etc)
Edit: je peux obtenir la liste des schémas en interrogeant le système d'affichage - INFORMATION_SCHEMA.SCHEMATA
mais préfère utiliser le schéma de l'API comme le premier choix.
Vous devez vous connecter pour publier un commentaire.
Pour 2005 et plus tard, ce sera à la fois de donner ce que vous cherchez.
Pour l'an 2000, cela vous donnera une liste des bases de données dans le instance.
C'est le "backward incompatability" dans @à la Dérive de la réponse.
Dans SQL Server 2000 (et plus bas), il n'y a pas vraiment de "schémas" en tant que tel, bien que vous puissiez utiliser les rôles comme des espaces de noms dans une manière similaire. Dans ce cas, ce peut être l'équivalent le plus proche.
SELECT * FROM sysusers
et voir si vous voyez les identifiants que vous cherchez.INFORMATION_SCHEMA.SCHEMATA
a servi à la fois des fonctions dans les différentes versions de MS SQL.Essayer cette requête ici:
Cela vous donnera le nom et l'schema_id pour tous les définit des schémas de la base de données vous exécutez cette dans.
Je ne sais pas vraiment ce que tu veux dire par l'interrogation du schéma "API" - ces
sys.
catalogue de point de vue (dans lesys
schéma) sont votre meilleur pari pour n'importe quel système d'informations sur les bases de données et des objets dans ces bases de données.PK,FK,D,C,V,UQ
etc de comparer la source et la cible de la base de données, mais ensuite, j'ai trouvé ceci fonctionnalité dans VS, mais il n'est pas unesql query
de comparer complète de la source et de la cible de la base de données ?Vous pouvez également interroger le INFORMATION_SCHEMA.SCHÉMAS de vue:
Je crois interroger les vues INFORMATION_SCHEMA est recommandé de vous protéger contre les modifications de la sous-sys tables. À partir de SQL Server 2008 R2:
Ironie du sort, c'est immédiatement précédé par cette remarque:
Vous pouvez également utiliser la requête suivante pour obtenir des Schémas de Base de données spécifique de l'utilisateur:
Si vous utilisez Sql Server Management Studio, vous pouvez obtenir une liste de tous les schémas, créer votre propre schéma ou supprimer un à un par la navigation à:
Bases De Données - [Votre Base De Données] - La Sécurité - Les Schémas