DROP SCHEMA (Transact-SQL)

Permet de supprimer un schéma de la base de données.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

DROP SCHEMA schema_name

Arguments

  • schema_name
    Nom sous lequel le schéma est connu dans la base de données.

Notes

Le schéma à supprimer ne doit contenir aucun objet. Si le schéma contient des objets, l'instruction DROP échoue.

Des informations sur les schémas sont consultables dans l'affichage catalogue sys.schemas.

Attention   Avec l'arrivée de SQL Server 2005, le comportement des schémas a changé. Ainsi, le code qui suppose que les schémas sont équivalents aux utilisateurs de base de données peut ne plus renvoyer des résultats corrects. Vous ne devez pas recourir aux anciens affichages catalogue, notamment sysobjects, dans une base de données où une des instructions DDL suivantes a été utilisée : 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. Dans ces bases de données, vous devez utiliser les nouveaux affichages catalogue. Les nouveaux affichages catalogue tiennent compte de la séparation des entités de sécurité et des schémas introduite dans SQL Server 2005 Pour plus d'informations sur les affichages catalogue, consultez Affichages catalogue (Transact-SQL).

Autorisations

Requiert l'autorisation CONTROL sur le schéma ou l'autorisation ALTER ANY SCHEMA sur la base de données.

Exemples

L'exemple ci-dessous commence avec une instruction CREATE SCHEMA unique. L'instruction crée le schéma Sprockets, qui est la propriété de Krishna, et une table Sprockets.NineProngs, puis accorde l'autorisation SELECT à Anibal et refuse l'autorisation 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

Les instructions ci-dessous permettent de supprimer le schéma. Notez que vous devez commencer par supprimer la table que contient le schéma.

DROP TABLE Sprockets.NineProngs;
DROP SCHEMA Sprockets;
GO