Share via


ALTER SCHEMA (Transact-SQL)

Bir güvenliği sağlanabilir şemalar arasında aktarır.

Topic link iconTransact-SQL sözdizimi kuralları

ALTER SCHEMA schema_name 
      TRANSFER [ <entity_type> :: ] securable_name [;]
<entity_type> ::=
    {
        Object | Type | XML Schema Collection
    }

Bağımsız değişkenler

  • schema_name
    Geçerli veritabanında içine güvenliği sağlanabilir taşınacak bir şema adıdır.SYS veya ınformatıon_schema olamaz.

  • <entity_type>
    Varlığın sahibine değiştiriliyor sınıftır.Nesne varsayılandır.

  • securable_name
    Bir parça veya iki bölümü şema içeren bir şemayı taşınacak güvenliği sağlanabilir adıdır.

Remarks

Kullanıcılar ve şemalar tümüyle ayrıdır.Daha fazla bilgi için bkz:Kullanıcı şeması ayırma.

ALTER SCHEMA yalnızca aynı veritabanında şemaları arasındaki securables taşımak için de kullanılabilir.Bir güvenliği sağlanabilir bir şema içinde bırakmak veya değiştirmek için özel, güvenliği sağlanabilir için ALTER veya DROP deyimini kullanın.

Bir tek parça ad için kullanılmışsa securable_name, ad çözümlemesi kuralları şu anda etkin güvenliği sağlanabilir bulmak için kullanılır.

güvenliği sağlanabilir yeni şemaya taşındığında güvenliği sağlanabilir ile ilişkilendirilmiş tüm izinler bıraktı.güvenliği sağlanabilir sahibine açıkça tutulmuşsa küme, sahibi aynı kalır.güvenliği sağlanabilir sahibine programlamasına tabi tutulmuşsa küme SCHEMA SAHIP için SCHEMA OWNER sahibi kalır; ancak yeni şema sahibine SCHEMA OWNER çözümler taşıma sonra.Yeni sahibin principal_id null olacaktır.

Bir tablo veya görünüm şemasını kullanarak değiştirmek için SQL Server Management Studio, Object Explorer, tabloyu veya görünümü sağ tıklatın ve ardından Tasarım.Basın F4 Özellikleri penceresini açın.Içinde Şema kutusunda, yeni bir şema seçin.

Uyarı

Beginning with SQL Server 2005, the behavior of schemas changed. As a result, code that assumes that schemas are equivalent to database users may no longer return correct results. Old catalog views, including sysobjects, should not be used in a database in which any of the following DDL statements have ever been used: 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. In such databases you must instead use the new catalog views. The new catalog views take into account the separation of principals and schemas that was introduced in SQL Server 2005. For more information about catalog views, see Catalog Views (Transact-SQL).

İzinler

Bir güvenliği sağlanabilir başka bir şemada transfer etmek için , geçerli kullanıcının CONTROL güvenliği sağlanabilir üzerinde izniniz olmalıdır (şema değil) ve hedef şema ALTER izni.

Bir AS OWNER yürütmek belirtimi üzerinde güvenliği sağlanabilir varsa ve sahibi küme SCHEMA SAHIP için kullanıcının da kimliğe BÜRÜNME hedef şemasının sahibi izniniz olmalıdır.

Bu hareket ettiğinde, güvenliği sağlanabilir ile aktarımının, ilişkilendirilmiş tüm izinler bırakılır.

Örnekler

C.Bir tablo sahipliği aktarma

Aşağıdaki örnek, şemayı değiştiren HumanResources Tablo aktararak Address şemadan Person şema içinde.

USE AdventureWorks;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO

b.Bir tür sahipliği aktarma

Aşağıdaki örnek, bir türünde oluşturur Production Şema ve türüne aktarır Person Şema.

USE AdventureWorks;
GO

CREATE TYPE Production.TestType FROM [varchar](10) NOT NULL ;
GO

-- Check the type owner
SELECT sys.types.name, sys.types.schema_id, sys.schemas.name
    FROM sys.types JOIN sys.schemas 
        ON sys.types.schema_id = sys.schemas.schema_id 
    WHERE sys.types.name = 'TestType' ;
GO

-- Change the type to the Person schema
ALTER SCHEMA Person TRANSFER type::Production.TestType ;
GO

-- Check the type owner
SELECT sys.types.name, sys.types.schema_id, sys.schemas.name
    FROM sys.types JOIN sys.schemas 
        ON sys.types.schema_id = sys.schemas.schema_id 
    WHERE sys.types.name = 'TestType' ;
GO

Değişiklik Geçmişi

Güncelleştirilmiş içerik

Sözdizimi, türünü ve XML şema koleksiyon seçenekleri ekleyerek düzeltildi.

Eklenen örnek b