DROP SCHEMA (Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例 Azure Synapse Analytics 分析平台系统 (PDW) Microsoft Fabric 中的 SQL 分析端点 Microsoft Fabric 中的仓库
从数据库中删除架构。
语法
-- Syntax for SQL Server and Azure SQL Database
DROP SCHEMA [ IF EXISTS ] schema_name
-- Syntax for Azure Synapse Analytics and Parallel Data Warehouse
DROP SCHEMA schema_name
参数
IF EXISTS
适用范围:SQL Server(SQL Server 2016 (13.x) 到当前版本)。
只有在架构已存在时才对其进行有条件地删除。
schema_name
架构在数据库中所使用的名称。
注解
要删除的架构不能包含任何对象。 如果架构包含对象,则 DROP 语句将失败。
可以在 sys.schemas 目录视图中查看有关架构的信息。
警告 从 SQL Server 2005 开始,架构的行为发生了更改。 因此,假设架构与数据库用户等价的代码不再返回正确的结果。 包含 sysobjects 的旧目录视图不应在曾经使用任何下列 DDL 语句的数据库中使用: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。 在这类数据库中,必须改用新目录视图。 新的目录视图将采用在 SQL Server 2005 中引入的使主体和架构分离的方法。 有关目录视图的详细信息,请参阅目录视图 (Transact-SQL)。
权限
要求对架构具有 CONTROL 权限,或者对数据库具有 ALTER ANY SCHEMA 权限。
示例
以下示例从单个 CREATE SCHEMA
语句开始。 该语句创建 Sprockets
拥有的架构 Krishna
以及表 Sprockets.NineProngs
,然后将 SELECT
权限授予 Anibal
,并对 SELECT
拒绝 Hung-Fu
权限。
CREATE SCHEMA Sprockets AUTHORIZATION Krishna
CREATE TABLE NineProngs (source INT, cost INT, partnumber INT)
GRANT SELECT TO Anibal
DENY SELECT TO [Hung-Fu];
GO
下列语句删除架构。 请注意,必须首先删除架构所包含的表。
DROP TABLE Sprockets.NineProngs;
DROP SCHEMA Sprockets;
GO
另请参阅
CREATE SCHEMA (Transact-SQL)
ALTER SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)