Dacă schema nu este specificată în mod implicit la crearea utilizatorului, atunci schema implicită este dbo. Pentru mai multe informații, consultați CREATE USER (Transact-SQL).
Pentru a accesa obiecte de schemă care nu sunt o schemă implicită, trebuie să specificați cel puțin un identificator în două părți (schema_name. Object_name). Acest lucru este valabil pentru toate instrucțiunile DDL și DML care referă obiecte în zona de schemă.
Următorul exemplu folosește două instrucțiuni SELECT pentru a afișa în mod implicit obiecte de referință în afara schemei. Dacă schema implicită nu este HumanResources. prima declarație nu reușește, deoarece tabelul Departamentului nu este conținut în schema implicită. Cea de-a doua afirmație este reușită deoarece indică schema în care este conținut obiectul.
Opțiuni alternative pentru accesarea schemelor în AdventureWorks
Exemple de coduri în SQL Server Books Online și mostre suplimentare pe care le puteți instala cu SQL Server utilizează cel puțin un identificator de două părți pentru toate obiectele din zona de schemă. Aceste exemple vor funcționa independent de schema de utilizator implicită.
Utilizatorii care utilizează baza de date AdventureWorks pentru propriile eșantioane și teste pot utiliza o alternativă în locul identificatorilor din două părți. Scripturile care sunt furnizate cu SQL Server în fișierul SQLServerEngineSamples.msi conțin două opțiuni pentru accesarea schemelor AdventureWorks.
Transferarea obiectelor în schema DBO
Scriptul AlterSchemaToDbo.sql migrează fiecare obiect Schema Schema de la AdventureWorks la schema dbo. După rularea acestui script, utilizatorii cu schema dbo implicită nu trebuie să specifice un identificator în două părți atunci când accesează obiecte AdventureWorks în instrucțiunile DDL și DML.
Probele de cod și eșantioanele furnizate cu SQL Server nu vor fi difuzate după executarea programului AlterSchemaToDbo.sql, dacă numele schemelor din cod nu sunt eliminate sau înlocuite cu nume de scheme dbo.
Scriptul AlterSchemaFromDbo.sql transferă sau returnează obiecte din schema dbo la schemele în care au fost înainte de a executa scriptul AlterSchemaToDbo.sql.
Utilizarea sinonimelor
Un sinonim este un alt nume dat unui obiect în zona de schemă. În instrucțiunile DDL și DML, se utilizează un sinonim în locul obiectului de bază.
Scriptul CreateSynonymsDbo.sql creează un sinonim pentru fiecare obiect de zonă de schemă din AdventureWorks. Numele sinonim este identic cu numele obiectului de bază, dar sinonimul utilizează schema dbo. De exemplu, sinonimul pentru HumanResources.Department este dbo.Department. Aceasta oferă următoarele avantaje:
Dacă dbo este schema implicită, atunci nu este necesară o identificare în două părți pentru specificarea acestor obiecte în instrucțiunile DDL și DML.
Probele de cod și eșantioanele incluse în SQL Server pot fi utilizate fără modificări.
Scriptul DropSynonymsDbo.sql elimină sinonimele create de scriptul CreateSynonymsDbo.sql. Pentru mai multe informații despre sinonime, consultați Utilizarea sinonimelor.
Pentru mai multe informații despre instalarea acestor scripturi, consultați Readme_AdventureWorksScripts.