Udostępnij za pośrednictwem


Schematy w AdventureWorks

W AdventureWorks Przykładowa baza danych OLTP, obiekty, takie jak tabele, widoki i procedury są zawarte w schematach. Schematy zmienić sposób, w której obiekty te są dostępne.Ten temat zawiera krótki przegląd schematów, w tym artykule opisano, jak schematy są używane w AdventureWorks bazy danych i zawiera metody oraz rozwiązań alternatywnych do uzyskiwania dostępu do obiektów, które są zawarte w schematach.

Schematy w AdventureWorks

W SQL Server 2005 a później, schematy są niezależne od użytkowników: Jak podmioty bazy danych użytkownicy własne schematy i obiektów, które są zawarte w schematy. Aby uzyskać więcej informacji zobaczUser-Schema Separation.

W poniższej tabela opisano schematów, które są używane w AdventureWorks i list reprezentatywnych tabele w każdym schemacie.

Schemat

Zawiera obiekty związane z

Przykłady

HumanResources

Pracownicy Adventure Works Cycles.

Tabela pracowników

Tabela działu

Osoby

Nazwy i adresy poszczególnych odbiorców, dostawców i pracowników.

Skontaktuj się z tabela

Tabela adres

Tabela StateProvince

Produkcja

Produktów wytwarzanych i sprzedawanych przez Adventure Works Cycles.

Tabela BillOfMaterials

Tabela produktu

Tabela zlecenia

Zakupu

Dostawców z produktów i części, które są kupowane.

Tabela PurchaseOrderDetail

Tabela PurchaseOrderHeader

Tabela dostawcy

Sprzedaż

Klienci i dane dotyczące sprzedaży.

Tabela odbiorców

Tabela SalesOrderDetail

Tabela SalesOrderHeader

Uzyskiwanie dostępu do obiektów zawarte w schematów

Użytkownicy zawsze mieć domyślny schemat.Domyślny schemat jest schemat, który będzie przeszukiwana przez serwer, kiedy jest rozwiązywana jako nazw niekwalifikowanych obiekty, które zostały określone w instrukcja DML lub DDL.Dlatego nazwę schematu nie ma być określona przy odwoływaniu się do obiektów zawartych w schemacie domyślnych, na przykład, instrukcja SELECT * FROM table_name pomyślnie wykonuje, jeśli table_name jest domyślny schemat.

Uwaga

Jeżeli nie określono domyślnego schematu, po utworzeniu przez użytkownika, jest domyślny schemat dbo.Aby uzyskać więcej informacji zobaczCREATE USER (języka Transact-SQL).

Aby uzyskać dostęp do obiektów w schemacie innego niż domyślny schemat, co najmniej (identyfikator z dwóch częścischema_name**.** object_name) musi być określona.Ta zasada obowiązuje dla wszystkich DDL i DML instrukcje, odwołujące się do obiektów o zakresie schematu.

W poniższym przykładzie użyto dwóch instrukcji SELECT, aby pokazać odwoływania się do obiektów poza domyślnego schematu.Zakładając, że domyślny schemat nie jest HumanResources, pierwszą instrukcją kończy się niepowodzeniem, ponieważ Department Tabela nie ma domyślnego schematu. Druga instrukcja powiedzie się, ponieważ określa ona schematu, w którym znajduje się obiekt.

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

Rozwiązania alternatywne w stosunku do schematów w AdventureWorks

Przykłady kodu w dokumentacji programu SQL Server Books Online i dodatkowe przykłady, które można zainstalować za pomocą SQL Server Określ co najmniej dwóch części identyfikatora dla wszystkich obiektów o zakresie schematu. W tych przykładach może być uruchamiany pomyślnie, niezależnie od użytkownika domyślnego schematu.

Users who want to use AdventureWorks for their own samples and testing may want an alternative to specifying the two-part identifier.SQL Server provides scripts in the SQLServerEngineSamples.msi that provide two alternatives to using the schemas in AdventureWorks.

Przenoszenie obiektów w schemacie DBO

Każdy obiekt schematu o zakresie w przenosi AlterSchemaToDbo.sql skryptu AdventureWorks Aby dbo schematu.Po ten skrypt został uruchomiony, użytkownicy z domyślnego schematu z dbo nie trzeba używać identyfikatora dwóch części, przy odwoływaniu się do AdventureWorks obiekty w instrukcji DDL i DML.

Important noteImportant Note:

Przykłady kodu i przykłady, dostarczane z SQL Server nie będzie działać po wykonaniu AlterSchemaToDbo.sql, chyba że nazwy schematu, określoną w kodzie albo są zastępowane dbo lub usunięte.

Transfery AlterSchemaFromDbo.sql skrypt, lub zwraca wartość, obiekty z dbo schematu do schematów, które znajdowały się przed uruchomieniem skryptu AlterSchemaToDbo.sql.

Za pomocą synonimów

Jest to synonim jest inna nazwa, która znajduje się na obiekt schematu o zakresie.Określono synonimem zamiast podstawowego obiektu w instrukcji DDL i DML.

Skrypt CreateSynonymsDbo.sql tworzy synonim dla każdego obiektu o zakresie schematu w AdventureWorks Nazwa synonim jest taka sama jak nazwa obiekt bazowy, ale używa dbo schematu.Na przykład synonim dla HumanResources.Department is dbo.Department.Ten ma następujące zalety:

  • Jeśli dbo jest domyślny schemat, określenie tych obiektów w instrukcji DDL i DML nie jest potrzebny identyfikator dwóch części.

  • Przykłady kodu i przykłady, dostarczane z SQL Server można użyć bez modyfikacji.

Skrypt DropSynonymsDbo.sql spadnie synonimy, utworzony przez skrypt CreateSynonymsDbo.sql.Aby uzyskać więcej informacji na temat synonimy zobacz Za pomocą synonimów.