Поделиться через


DROP SCHEMA (Transact-SQL)

Удаляет схему из базы данных.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

DROP SCHEMA schema_name

Аргументы

  • schema_name
    Имя, под которым схема известна в пределах базы данных.

Замечания

Удаляемая схема не должна содержать никаких объектов. Если схема содержит объекты, выполнение инструкции DROP заканчивается сбоем.

Сведения о схемах можно увидеть в представлении каталога sys.schemas.

ms186751.Caution(ru-ru,SQL.90).gifВнимание!
В SQL Server 2005 поведение схем отличается от их поведения в предыдущих версиях SQL Server. Код, предполагающий, что схемы эквивалентны пользователям базы данных, может возвращать неверные результаты. Старые представления каталога содержат таблицу 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.

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