Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server
Azure SQL Database
Spravovaná instance Azure SQL
Azure Synapse Analytics
Analytics Platform System (PDW)
Koncový bod analýzy SQL v Microsoft Fabric
Sklad v Microsoft Fabric
Databáze SQL v Microsoft Fabric
Přenáší zabezpečitelné mezi schématy.
Syntaxe
-- 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
[;]
Argumenty
schema_name
Cílové schéma v aktuální databázi. Zabezpečitelný se přesune do tohoto schématu. Nemůže být SYS nebo INFORMATION_SCHEMA.
<entity_type>
Třída entity, pro kterou se vlastník mění. Objekt je výchozí.
securable_name
Jednodílný nebo dvoudílný název zabezpečitelného schématu, který se dá přesunout do schématu.
Poznámky
Uživatelé a schémata jsou zcela oddělená. Schémata nejsou ekvivalentní uživatelům databáze. Pomocí zobrazení katalogu systému identifikujte všechny rozdíly mezi uživateli databáze a schématy.
ALTER SCHEMA lze použít pouze k přesunu zabezpečitelných mezi schématy ve stejné databázi. Chcete-li změnit nebo odstranit zabezpečitelný v rámci schématu, použijte příkaz ALTER nebo DROP specifický pro tento zabezpečitelný.
Pokud se pro securable_name používá název jedné části, pravidla překladu názvů, která jsou aktuálně platná, se použijí k vyhledání zabezpečitelného názvu.
Všechna oprávnění přidružená k zabezpečitelnému se zahodí při přesunu zabezpečitelného schématu do nového schématu. Pokud je vlastník zabezpečitelné explicitně nastaven, zůstane vlastník beze změny. Pokud je vlastník zabezpečitelného objektu nastaven na SCHEMA OWNER, vlastník zůstane vlastníkem schématu; Po přesunutí vlastníka schématu se však přeloží na vlastníka nového schématu. Nový principal_id vlastník bude NULL.
Důležité
Pokud používáte ALTER SCHEMA k přenosu uložené procedury, funkce, zobrazení nebo triggeru do jiného schématu, nezmění se název schématu, pokud existuje, objektu ve definition sloupci zobrazení katalogu sys.sql_modules nebo v důsledku integrované funkce OBJECT_DEFINITION .
ALTER SCHEMA Proto by neměly být použity k přesunutí těchto typů objektů. Místo toho odstraňte a znovu vytvořte objekt v novém schématu.
Přesunutí objektu, jako je tabulka nebo synonyma, automaticky neaktualizuje odkazy na tento objekt. Je nutné upravit všechny objekty, které odkazují na přenesený objekt ručně. Pokud například přesunete tabulku a na tuto tabulku se odkazuje v triggeru, musíte aktivační událost upravit tak, aby odrážela nový název schématu. Pomocí sys.sql_expression_dependencies před přesunutím vypíšete závislosti na objektu.
Pokud chcete změnit schéma tabulky pomocí aplikace SQL Server Management Studio, klikněte v Průzkumníku objektů pravým tlačítkem myši na tabulku a pak vyberte Návrh. Stisknutím klávesy F4 otevřete okno Vlastnosti. V poli Schéma vyberte nové schéma.
ALTER SCHEMA používá zámek na úrovni schématu.
Upozornění
V koncovém bodu analýzy SQL Fabric není přenos tabulky mezi schématy prostřednictvím T-SQL podporován. Může negativně ovlivnit operaci synchronizace mezi onelakem a koncovým bodem analýzy SQL.
Povolení
Chcete-li přenést zabezpečitelný z jiného schématu, musí mít aktuální uživatel oprávnění CONTROL k zabezpečitelnému (ne schématu) a alter pro cílové schéma.
Pokud má zabezpečitelná specifikace EXECUTE AS OWNER a vlastník je nastaven na SCHEMA OWNER, uživatel musí mít také oprávnění IMPERSONATE pro vlastníka cílového schématu.
Všechna oprávnění přidružená k zabezpečitelnému přenosu se při přesunu zahodí.
Příklady
A. Převod vlastnictví tabulky
Následující příklad upraví schéma HumanResources přenesením tabulky Address ze schématu Person do schématu HumanResources .
USE AdventureWorks2022;
GO
ALTER SCHEMA HumanResources TRANSFER Person.Address;
GO
B. Převod vlastnictví typu
Následující příklad vytvoří typ ve schématu Production a potom přenese typ do schématu Person .
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
Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)
C. Převod vlastnictví tabulky
Následující příklad vytvoří ve schématu tabulkuRegion, vytvoří dbo schéma a pak přesune Sales tabulku ze Region schématu do schématudbo.Sales
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
Související obsah
- VYTVOŘENÍ SCHÉMATU (Transact-SQL)
- SCHÉMA VYŘAZENÍ (Transact-SQL)
- EVENTDATA (Transact-SQL)