DROP SCHEMA (Transact-SQL)
Rimuove uno schema dal database.
Convenzioni della sintassi Transact-SQL
Sintassi
DROP SCHEMA schema_name
Argomenti
- schema_name
Nome con il quale è noto lo schema all'interno del database.
Osservazioni
Lo schema da rimuovere non deve contenere oggetti, in caso contrario l'istruzione DROP avrà esito negativo.
Le informazioni sugli schemi sono visibili nella vista del catalogo sys.schemas.
Attenzione A partire da SQL Server 2005, il funzionamento degli schemi è stato modificato. È pertanto possibile che il codice in cui gli schemi vengono considerati equivalenti agli utenti del database non restituisca risultati corretti. Non utilizzare le viste del catalogo delle versioni precedenti, inclusa sysobjects, nei database in cui sia già stata utilizzata una delle istruzioni DDL seguenti: 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. In tali database è invece necessario utilizzare le nuove viste del catalogo. Le nuove viste del catalogo prendono in considerazione la separazione tra entità e schemi introdotta in SQL Server 2005. Per ulteriori informazioni sulle viste del catalogo, vedere Viste del catalogo (Transact-SQL).
Autorizzazioni
È richiesta l'autorizzazione CONTROL per lo schema o l'autorizzazione ALTER ANY SCHEMA per il database.
Esempi
L'esempio seguente inizia con una singola istruzione CREATE SCHEMA. Tale istruzione crea lo schema Sprockets di proprietà di Krishna e la tabella Sprockets.NineProngs, quindi concede l'autorizzazione SELECT ad Anibal e nega l'autorizzazione SELECT a 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
Le istruzioni seguenti rimuovono lo schema. Si noti che è prima necessario rimuovere la tabella contenuta nello schema.
DROP TABLE Sprockets.NineProngs;
DROP SCHEMA Sprockets;
GO