Схеми в adventureworks

Якщо при створенні користувача схема за замовчуванням не вказана, то схемою за замовчуванням є dbo. Додаткові відомості див. У розділі CREATE USER (Transact-SQL).

Для звернення до об'єктів схеми, яка не є схемою за замовчуванням, повинен бути вказаний як мінімум двокомпонентний ідентифікатор (schema_name. Object_name). Це справедливо для всіх інструкцій DDL і DML, що посилаються на об'єкти в області схеми.

У наступному прикладі використовуються дві інструкції SELECT для відображення посилаються об'єктів поза схемою за замовчуванням. Якщо схемою за замовчуванням не є HumanResources. перша інструкція завершується невдало, т. к. таблиця Department не міститься в схемі за замовчуванням. Друга інструкція виконується успішно, тому що в ній вказується схема, в якій міститься об'єкт.

Альтернативні варіанти звернення до схем в AdventureWorks

У прикладах коду в електронній документації по SQL Server і додаткових зразках, які можна встановити разом з SQL Server, використовується як мінімум двокомпонентний ідентифікатор для всіх об'єктів в області схеми. Ці приклади будуть працювати незалежно від призначеної для користувача схеми за замовчуванням.

Користувачі, які використовують базу даних AdventureWorks для своїх власних зразків і тестування, можуть використовувати альтернативний варіант замість двокомпонентних ідентифікаторів. Сценарії, що поставляються з SQL Server в файлі SQLServerEngineSamples.msi, містять два варіанти звернення до схем AdventureWorks.

Перенесення об'єктів в схему DBO

Сценарій AlterSchemaToDbo.sql переносить кожен об'єкт області схеми з AdventureWorks в схему dbo. Після запуску цього сценарію користувачам зі схемою за замовчуванням dbo необов'язково вказувати двокомпонентний ідентифікатор при зверненні до об'єктів AdventureWorks в інструкціях DDL і DML.

Приклади коду та зразки, що поставляються з SQL Server, які не будуть запускатися після виконання AlterSchemaToDbo.sql, якщо імена схем в коді НЕ будуть видалені або замінені на імена схем dbo.

Сценарій AlterSchemaFromDbo.sql передає або повертає об'єкти зі схеми dbo в схеми, в яких вони були перед запуском сценарію AlterSchemaToDbo.sql.

Використання синонімів

Синонім - це інше ім'я, яке дається об'єкту області схеми. В інструкціях DDL і DML замість базового об'єкта вказується синонім.

Сценарій CreateSynonymsDbo.sql створює синонім для кожного об'єкта області схеми в AdventureWorks. Ім'я синоніма той же, що і ім'я базового об'єкта, однак синонім використовує схему dbo. Наприклад, синонімом для HumanResources.Department є dbo.Department. Це дає наступні переваги:

Якщо dbo є схемою за замовчуванням, то двокомпонентний ідентифікатор для вказівки цих об'єктів в інструкціях DDL і DML не потрібно.

Приклади коду та зразки, що входять в комплект SQL Server, можна використовувати без змін.

Сценарій DropSynonymsDbo.sql видаляє синоніми, створені сценарієм CreateSynonymsDbo.sql. Додаткові відомості про синоніми см. В розділі Використання синонімів.

Додаткові відомості про встановлення цих сценаріїв см. В розділі Readme_AdventureWorksScripts.

Схожі статті