DROP SCHEMA (Transact-SQL)
Удаляет схему из базы данных.
Применимо для следующих объектов: SQL Server (SQL Server 2008 по текущую версию), База данных SQL Windows Azure (с первоначального выпуска по текущий выпуск). |
Синтаксические обозначения в Transact-SQL
Синтаксис
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. Эта инструкция создает схему Sprockets, владельцем которой является Krishna, и таблицу Sprockets.NineProngs, затем предоставляет разрешение SELECT на Anibal и отзывает разрешение SELECT на Hung-Fu.
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