Partager via


Schémas dans AdventureWorks

Dans l'exemple de base de données OLTP AdventureWorks, les objets comme les tables, les vues et les procédures sont contenus dans des schémas. Les schémas modifient le mode d'accès à ces objets. La présente rubrique offre une brève vue d'ensemble des schémas, explique comment ceux-ci sont utilisés dans la base de données AdventureWorks et présente des méthodes et diverses solutions pour accéder aux objets qui y figurent.

Schémas dans AdventureWorks

Dans Microsoft SQL Server 2005, les schémas sont séparés des utilisateurs : en tant qu'agents de la base de données, les utilisateurs sont propriétaires des schémas et les objets sont contenus dans les schémas. Pour plus d'informations, consultez Séparation du schéma et de l'utilisateur.

Le tableau ci-dessous décrit les schémas utilisés dans la base de données AdventureWorks et répertorie les tables représentatives dans chacun d'eux.

Schema Contient les objets liés aux Exemple

HumanResources

Employés de la société Adventure Works Cycles.

Table Employee

Table Department

Person

Noms et adresses de chaque client, fournisseur et employé

Table Contact

Table Address

Table StateProvince

Production

Produits fabriqués et vendus par la société Adventure Works Cycles.

Table BillOfMaterials

Table Product

Table WorkOrder

Purchasing

Fournisseurs auprès desquels les pièces et les produits sont achetés.

Table PurchaseOrderDetail

Table PurchaseOrderHeader

Table Vendor

Sales

Données liées aux clients et aux ventes

Table Customer

Table SalesOrderDetail

Table SalesOrderHeader

Accès aux objets contenus dans les schémas

Les utilisateurs disposent toujours d'un schéma par défaut. Le schéma par défaut est celui qui est recherché par le serveur lorsqu'il résout les noms des objets non qualifiés qui sont spécifiés dans une instruction DML ou DDL. Le nom de schéma ne doit donc pas être spécifié pour référencer des objets qui sont contenus dans le schéma par défaut. Par exemple, l'instruction SELECT * FROM table_name s'exécute correctement si le paramètre table_name figure dans le schéma par défaut.

ms124894.note(fr-fr,SQL.90).gifRemarque :
Si un schéma par défaut n'est pas spécifié lorsque l'utilisateur est créé, le schéma par défaut qui s'impose est dbo. Pour plus d'informations, consultez CREATE USER (Transact-SQL).

Pour accéder aux objets d'un schéma autre que le schéma par défaut, il est nécessaire de spécifier, au minimum, un identificateur en deux parties (schema_name**.**object_name). Ceci est vrai pour toute instruction DDL et DML faisant référence à des objets figurant dans un schéma.

L'exemple suivant utilise deux instructions SELECT pour montrer comment faire référence à des objets externes au schéma par défaut. Dans l'hypothèse où le schéma par défaut n'est pas HumanResources, la première instruction échoue car la table Department n'est pas contenue dans le schéma par défaut. En revanche, la deuxième instruction réussit car elle spécifie le schéma dans lequel l'objet est contenu.

USE AdventureWorks;
GO
--This statement fails.
SELECT Name, GroupName
FROM Department;
GO
--This statement succeeds.
SELECT Name, GroupName
FROM HumanResources.Department;
GO

Autres solutions pour les schémas dans AdventureWorks

Les exemples de code dans la documentation en ligne de SQL Server, ainsi que les exemples supplémentaires qu'il est possible d'installer avec SQL Server 2005 spécifient au moins l'identificateur en deux parties pour tous les objets figurant dans les schémas. Ces exemples s'exécutent correctement quel que soit le schéma par défaut de l'utilisateur.

En revanche, les utilisateurs qui veulent utiliser la base de données AdventureWorks pour leurs exemples et tests personnels peuvent souhaiter une autre option que la spécification de l'identificateur en deux parties. SQL Server 2005 propose des scripts dans SQLServerEngineSamples.msi qui offrent deux solutions différentes pour utiliser les schémas dans la base de données AdventureWorks.

Transfert des objets vers le schéma DBO

Le script AlterSchemaToDbo.sql transfert chaque objet figurant dans un schéma de la base de données AdventureWorks vers le schéma dbo. Une fois ce script exécuté, les utilisateurs disposant d'un schéma par défaut dbo n'ont pas besoin d'utiliser l'identificateur en deux parties pour référencer les objets de la base de données AdventureWorks dans les instructions DDL et DML.

ms124894.note(fr-fr,SQL.90).gifImportant :
Les exemples de code et les exemples fournis avec SQL Server 2005 ne s'exécuteront pas après l'exécution de AlterSchemaToDbo.sql tant que les noms des schémas spécifiés dans le code ne seront pas remplacés par dbo ou supprimés.

Le script AlterSchemaFromDbo.sql transfert, ou retourne, les objets du schéma dbo vers les schémas dans lesquels ils se trouvaient avant l'exécution du script AlterSchemaToDbo.sql.

Utilisation de synonymes

Un synonyme est un autre nom qui est attribué à un objet figurant dans un schéma. Le synonyme est spécifié au lieu d'être l'objet de base dans les instructions DDL et DML.

Le script CreateSynonymsDbo.sql crée un synonyme pour chaque objet figurant dans un schéma de la base de données AdventureWorks. Le nom de synonyme est identique au nom d'objet de base, sauf qu'il utilise le schéma dbo. Par exemple, le synonyme de HumanResources.Department est dbo.Department. Ceci offre les avantages suivants :

  • Si dbo est le schéma par défaut, un identificateur en deux parties n'est pas nécessaire pour spécifier ces objets dans les instructions DDL et DML.
  • Les exemples de code et les exemples fournis avec SQL Server 2005 peuvent être utilisés sans modification.

Le script DropSynonymsDbo.sql supprime les synonymes créés par le script CreateSynonymsDbo.sql. Pour plus d'informations sur les synonymes, consultez Using Synonyms.

Voir aussi

Autres ressources

Dictionnaire de données AdventureWorks
Installation des exemples de bases de données AdventureWorks et des autres exemples

Aide et Informations

Assistance sur SQL Server 2005