Şema (Transact-SQL) oluştur

Geçerli veritabanında bir şema oluşturur.create schema hareket ayrıca tabloların ve görünümlerin içinde yeni şema ve küme grant, deny, oluşturabilir veya bu nesnelerdeki izinleri iptal.

Konu bağlantısı simgesiTransact-SQL sözdizimi kuralları

Sözdizimi

CREATE SCHEMA schema_name_clause [ <schema_element> [ ...n ] ]

<schema_name_clause> ::=
    {
    schema_name
    | AUTHORIZATION owner_name
    | schema_name AUTHORIZATION owner_name
    }

<schema_element> ::= 
    { 
        table_definition | view_definition | grant_statement | 
        revoke_statement | deny_statement 
    }

Bağımsız değişkenler

  • schema_name
    Şema içinde veritabanı olarak tanımlanır addır.

  • YETKİLENDİRMEowner_name
    Şema sahip veritabanıdüzey asıl adını belirtir.Bu patron başka şemalar sahip olamayacak ve geçerli şema varsayılan şeması kullanamazsınız.

  • table_definition
    tablo şema içinde oluşturduğu create table deyim belirtir.Bu deyim yürütme sorumlusu, geçerli veritabanında create table iznine sahip olmalısınız.

  • view_definition
    Şema içinde bir görünüm oluşturur create VIEW deyim belirtir.Bu deyim yürütme sorumlusu, geçerli veritabanında create VIEW izni olmalıdır.

  • grant_statement
    Bir güvenliği sağlanabilir yeni şema dışında izin verir grant deyim belirtir.

  • revoke_statement
    Bir güvenliği sağlanabilir yeni şema dışında izinlerini iptal eder revoke deyim belirtir.

  • deny_statement
    Herhangi güvenliği sağlanabilir yeni şema dışında izinlerini reddeder deny deyim belirtir.

Açıklamalar

Not

Deyimleri oluşturmak schema YETKİLENDİRME içerir, ancak bir ad belirtmezseniz, yalnızca geriye dönük uyumluluk için izin verilir.

create schema şema, tablo ve görünümleri içerdiği ve grant, revoke, oluşturabilir veya bir güvenliği sağlanabilir tek bir deyimiçinde izin VERMEMEK.Bu deyim bir toplu işayrı yürütülmelidir.create schema deyim ile oluşturulan nesneler oluşturulmaktadır şema içinde oluşturulur.

atomikcreate schema deyimyürütme sırasında bir hata ortaya çıkarsa, belirtilen güvenli hale Getirilebilenler hiçbiri oluşturulur ve hiçbir izin verilir.

create schema tarafından oluşturulacak güvenli hale Getirilebilenler haricinde diğer görünümlere başvuru görünümleri istediğiniz sırayla listelenir.Bu durumda başvurulan görünümü başvurduğu görünümü önce oluşturulması gerekir.

Bu nedenle, grant deyim bir nesnede nesne oluşturulduğunda veya create VIEW deyim , görünüm tarafından başvurulan tablolar oluşturmak için create table ifadeleri önce görünebilir önce izni verebilirsiniz.Ayrıca, create table deyimleri yabancı anahtarları daha sonra create schema deyimiçinde tanımlanmış olan tablolara bildirebilirsiniz.

Not

REDDET ve revoke create schema deyimleri içinde desteklenmiyor.Yan tümceleri izin verme ve revoke create schema deyimiçinde göründükleri sırayla yürütülür.

create schema yürüten patron oluşturulan şema sahibi olarak başka bir veritabanı asıl adı belirtebilirsiniz.Bu "İzinler" konusunda açıklandığı gibi ek izinler gerektirir daha sonra bu bölümde.

Yeni şema aşağıdaki veritabanı -düzey sorumluları birine aittir: Veritabanı kullanıcı veritabanı rolüveya uygulama rolü.Bir şema içinde oluşturulan nesneler şema sahibi tarafından sahip olunan ve null olan principal_id , sys.objects.Şema içerdiği nesnelerin sahipliğini herhangi veritabanı -düzey asıl aktarılabilir, ancak şema sahibi şema içindeki nesneler üzerinde denetim izni her zaman korur.

Dikkat notuDikkat

SQL Server 2005'ten itibaren şemaların davranışları değişmiştir. Bunun sonucunda, şemaların veritabanı kullanıcılarına denk olduğunu kabul eden kod artık doğru sonuçlar döndürmeyebilir. Eski katalog görünümleri, sysobjects dahil, aşağıdaki DLL ifadelerinden herhangi birinin kullanıldığı bir veritabanında kullanılmamalıdır: CREATE SCHEMA, ALTER SCHEMA, DROP SCHEMA, CREATE USER, ALTER USER, DROP USER, CREATE ROLE, ALTER ROLE, DROP ROLE, CREATE APPROLE, ALTER APPROLE, DROP APPROLE, ALTER AUTHORIZATION. Bu gibi veritabanlarında bunun yerine yeni katalog görünümlerini kullanmalısınız. Yeni katalog görünümleri, ilk olarak SQL Server 2005 içinde kullanılan prensiplerin ve şemaların ayrılmasını dikkate alır. Katalog görünümleri hakkında daha fazla bilgi için bkz. Catalog Views (Transact-SQL) (Katalog Görünümleri (Transact-SQL)).

Ne zaman (kullanıcı veya grup) bir etki alanı geçerli asıl etki alanı asıl nesne sahibi belirtirseniz, bir veritabanı nesnesi oluşturma veritabanı şeması olarak eklenecektir.Bu etki alanı sorumlusu tarafından yeni şema sahibi.

Kaldırılması uyarısı

Şema adı belirtmeyen create schema ifadeleri şu anda geriye doğru uyumluluk için desteklenir.Bu tür ifadeleri gerçekten bir şema içinde veritabanı oluşturmayın, ancak bunlar tablolar ve görünümler oluşturun ve izinleri verin.Hiçbir şema oluşturulan çünkü sorumluları bu önceki biçimi, create schema create schema izni yürütmek gerek yoktur.Bu işlevi bir sonraki sürümünden kaldırılacak SQL Server.

İzinler

Veritabanında create schema izni gerektirir.

create schema deyimiçinde belirtilen bir nesne oluşturmak için kullanıcının ilgili oluşturma izniniz olmalıdır.

Arayan, oluşturulan şema sahibi olarak başka bir kullanıcı belirtmek için bu kullanıcıya özelliklerini Al izni olmalıdır.veritabanı rolü sahibi olarak belirtilirse, arayan aşağıdakilerden biri olmalıdır: rol veya role alter izni üyelik.

Not

Hiçbir şema oluşturulduğu için geriye dönük olarak uyumlu sözdizimi create schema için izin yok denetlenir.

Örnekler

Aşağıdaki örnek şema oluşturur Sprockets sahibi Annik tabloiçeren NineProngs.deyim veren SELECT için Mandar 've SELECT için Prasanna.Unutmayın Sprockets ve NineProngs tek bir deyimoluşturulur.

USE AdventureWorks2008R2;
GO
CREATE SCHEMA Sprockets AUTHORIZATION Annik
    CREATE TABLE NineProngs (source int, cost int, partnumber int)
    GRANT SELECT ON SCHEMA::Sprockets TO Mandar
    DENY SELECT ON SCHEMA::Sprockets TO Prasanna;
GO