DROP SCHEMA (Transact-SQL)
从数据库中删除架构。
适用范围:SQL Server(SQL Server 2008 至当前版本)、Windows Azure SQL Database(初始版本至当前版本)。 |
语法
DROP SCHEMA schema_name
参数
- 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 语句开始。 该语句创建 Krishna 拥有的架构 Sprockets 以及表 Sprockets.NineProngs,然后将 SELECT 权限授予 Anibal,并对 Hung-Fu 拒绝 SELECT 权限。
USE AdventureWorks2012;
GO
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