Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analiz Platformu Sistemi (PDW)
Microsoft Fabric'teki SQL analiz uç noktası
Microsoft Fabric'teki ambar
Microsoft Fabric'teki SQL veritabanı
Şemalar arasında güvenli hale getirilebilir bir aktarım sağlar.
Transact-SQL söz dizimi kuralları
Sözdizimi
-- Syntax for SQL Server and Azure SQL Database
ALTER SCHEMA schema_name
TRANSFER [ <entity_type> :: ] securable_name
[;]
<entity_type> ::=
{
Object | Type | XML Schema Collection
}
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse and Microsoft Fabric
ALTER SCHEMA schema_name
TRANSFER [ OBJECT :: ] securable_name
[;]
Tartışmalar
schema_name
Geçerli veritabanındaki hedef şema. Güvenli hale getirilebilir bu şemaya taşınır. veya SYSolamazINFORMATION_SCHEMA.
<entity_type>
Sahibinin değiştirildiği varlığın sınıfı. Nesne varsayılan değerdir.
securable_name
Şemaya taşınacak şema kapsamlı güvenli hale getirilebilir bir veya iki parçalı adı.
Açıklamalar
Kullanıcılar ve şemalar tamamen ayrıdır. Şemalar veritabanı kullanıcılarına eşdeğer değildir. Veritabanı kullanıcıları ile şemalar arasındaki farkları belirlemek için Sistem kataloğu görünümlerini kullanın.
ALTER SCHEMA yalnızca aynı veritabanındaki şemalar arasında güvenli hale getirilebilirleri taşımak için kullanılabilir. Bir şema içinde güvenli hale getirilebilir bir değeri değiştirmek veya bırakmak için, bu güvenli hale getirilebilir değere özgü ALTER veya DROP deyimini kullanın.
securable_name için tek parçalı bir ad kullanılırsa, şu anda etkin olan ad çözümleme kuralları güvenli hale getirilebilir değeri bulmak için kullanılır.
Güvenli hale getirilebilir yeni şemaya taşındığında, güvenli hale getirilebilir ile ilişkili tüm izinler bırakılır. Güvenli hale getirilebilir öğesinin sahibi açıkça ayarlandıysa, sahip değişmeden kalır. Güvenli hale getirilebilir sahibi SCHEMA OWNER olarak ayarlandıysa, sahip ŞEMA SAHİBİ olarak kalır; ancak, şemayı taşımadan sonra SCHEMA OWNER yeni şemanın sahibine çözümlenir.
principal_id Yeni sahibin sahibi olacaktırNULL.
Önemli
Saklı yordamı, işlevi, görünümü veya tetikleyiciyi başka bir şemaya aktarmak için kullanırsanızALTER SCHEMA, definition katalog görünümünün sütunundaki nesnenin şema adını veya yerleşik OBJECT_DEFINITION işlevinin sonucu olarak değişmez. Bu nedenle, ALTER SCHEMA bu nesne türlerini taşımak için kullanılmamalıdır. Bunun yerine, nesneyi yeni şemasında bırakın ve yeniden oluşturun.
Tablo veya eş anlamlı gibi bir nesneyi taşımak, bu nesneye başvuruları otomatik olarak güncelleştirmez. Aktarılan nesneye el ile başvuran nesneleri değiştirmeniz gerekir. Örneğin, bir tabloyu taşırsanız ve bu tabloya tetikleyicide başvurulursa, tetikleyiciyi yeni şema adını yansıtacak şekilde değiştirmeniz gerekir. Taşımadan önce nesnedeki bağımlılıkları listelemek için sys.sql_expression_dependencies kullanın.
SQL Server Management Studio kullanarak tablonun şemasını değiştirmek için Nesne Gezgini'nde tabloya sağ tıklayın ve tasarım'ı seçin. Özellikler penceresini açmak için F4 tuşuna basın. Şema kutusunda yeni bir şema seçin.
ALTER SCHEMA bir şema düzeyi kilidi kullanır.
Dikkat
Doku SQL analizi uç noktasında, T-SQL aracılığıyla şemalar arasında tablo aktarımı desteklenmez. OneLake ile SQL analiz uç noktası arasındaki eşitleme işlemini olumsuz etkileyebilir.
İzinler
Güvenliği sağlanabilir bir şemayı başka bir şemadan aktarmak için, geçerli kullanıcının güvenli kılınabilir (şema değil) üzerinde CONTROL iznine ve hedef şemada ALTER iznine sahip olması gerekir.
Güvenli hale getirilebilir öğenin üzerinde SAHIP OLARAK YÜRÜT belirtimi varsa ve sahip SCHEMA OWNER olarak ayarlandıysa, kullanıcının hedef şemanın sahibi üzerinde KIMLIĞE BÜRÜNme iznine de sahip olması gerekir.
Aktarılmakta olan güvenli hale getirilebilir ile ilişkili tüm izinler taşındığında bırakılır.
Örnekler
A. Tablonun sahipliğini aktarma
Aşağıdaki örnek, tabloyu HumanResources şemadan şemaya Address aktararak şemayı PersonHumanResources değiştirir.
USE AdventureWorks2022;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO
B. Bir türün sahipliğini aktarma
Aşağıdaki örnek şemada Production bir tür oluşturur ve sonra türü şemaya Person aktarır.
USE AdventureWorks2022;
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
Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)
C. Tablonun sahipliğini aktarma
Aşağıdaki örnek şemada Region bir tablo dbo oluşturur, bir Sales şema oluşturur ve sonra tabloyu şemadan Region şemaya dbo taşırSales.
CREATE TABLE dbo.Region
(Region_id INT NOT NULL,
Region_Name CHAR(5) NOT NULL)
WITH (DISTRIBUTION = REPLICATE);
GO
CREATE SCHEMA Sales;
GO
ALTER SCHEMA Sales TRANSFER OBJECT::dbo.Region;
GO