DROP SCHEMA (Transact-SQL)

从数据库中删除架构。

主题链接图标Transact-SQL 语法约定

语法

DROP SCHEMA schema_name

参数

  • schema_name
    架构在数据库中所使用的名称。

备注

要删除的架构不能包含任何对象。如果架构包含对象,则 DROP 语句将失败。

可以在 sys.schemas 目录视图中查看有关架构的信息。

ms186751.Caution(zh-cn,SQL.90).gif注意:
在 SQL Server 2005 中,架构的行为与早期版本的 SQL Server 中的行为不同。假设架构与数据库用户等价的代码不能返回正确的结果。在曾经使用过以下任何 DDL 语句的数据库中,不应当使用旧目录视图(包括 sysobjects):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 AdventureWorks;
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

请参阅

参考

CREATE SCHEMA (Transact-SQL)
ALTER SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)
EVENTDATA (Transact-SQL)

其他资源

用户架构分离

帮助和信息

获取 SQL Server 2005 帮助