DROP SCHEMA (Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Azure Synapse AnalyticsAnalytics Platform System (PDW)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

从数据库中删除架构。

Transact-SQL 语法约定

语法

-- 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  

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

参数

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)