sp_dropextendedproperty (Transact-SQL)
Si applica a: SQL Server
Elimina una proprietà estesa esistente.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
sp_dropextendedproperty
[ @name = ] N'name'
[ , [ @level0type = ] 'level0type' ]
[ , [ @level0name = ] N'level0name' ]
[ , [ @level1type = ] 'level1type' ]
[ , [ @level1name = ] N'level1name' ]
[ , [ @level2type = ] 'level2type' ]
[ , [ @level2name = ] N'level2name' ]
[ ; ]
Argomenti
[ @name = ] N'name'
Nome della proprietà da eliminare. @name è sysname e non può essere NULL
.
[ @level0type = ] 'level0type'
Nome del tipo di oggetto di livello 0 specificato. @level0type è varchar(128), con il valore predefinito NULL
.
Gli input validi sono ASSEMBLY
, CONTRACT
, EVENT NOTIFICATION
, FILEGROUP
MESSAGE TYPE
, PARTITION FUNCTION
, , PARTITION SCHEME
, REMOTE SERVICE BINDING
ROUTE
, USER
SERVICE
TRIGGER
SCHEMA
TYPE
e .NULL
Importante
USER
e TYPE
come tipi di livello 0 verranno rimossi in una versione futura di SQL Server. Evitare pertanto di utilizzarle in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono state implementate. Usare SCHEMA
come tipo di livello 0 anziché USER
. Per TYPE
, usare SCHEMA
come tipo di livello 0 e TYPE
come tipo di livello 1.
[ @level0name = ] N'level0name'
Nome del tipo di oggetto di livello 0 specificato. @level0name è sysname, con un valore predefinito .NULL
[ @level1type = ] 'level1type'
Tipo di oggetto di livello 1. @level1type è varchar(128), con il valore predefinito NULL
.
Gli input validi sono AGGREGATE
, DEFAULT
, FUNCTION
, LOGICAL FILE NAME
, PROCEDURE
QUEUE
, , RULE
, SYNONYM
TYPE
TABLE_TYPE
VIEW
TABLE
XML SCHEMA COLLECTION
e .NULL
[ @level1name = ] N'level1name'
Nome del tipo di oggetto di livello 1 specificato. @level1name è sysname, con un valore predefinito .NULL
[ @level2type = ] 'level2type'
Tipo di oggetto di livello 2. @level2type è varchar(128), con il valore predefinito NULL
.
Gli input validi sono COLUMN
, CONSTRAINT
, EVENT NOTIFICATION
, INDEX
PARAMETER
, , TRIGGER
e NULL
.
[ @level2name = ] N'level2name'
Nome del tipo di oggetto di livello 2 specificato. @level2name è sysname, con un valore predefinito .NULL
Valori del codice restituito
0
(esito positivo) o 1
(errore).
Osservazioni:
Quando si specificano proprietà estese, gli oggetti in un database di SQL Server vengono classificati in tre livelli: 0, 1 e 2. Il livello 0 è il livello più alto e viene definito come oggetti inclusi nell'ambito del database. Gli oggetti di livello 1 sono inclusi nell'ambito di uno schema o utente, mentre gli oggetti di livello 2 sono contenuti dagli oggetti di livello 1. È possibile definire le proprietà estese per gli oggetti di qualsiasi livello. I riferimenti a un oggetto presente in un livello devono essere qualificati con i tipi e i nomi di tutti gli oggetti di livello superiore.
Dato un nome di proprietà valido @name, se tutti i tipi di oggetto e i nomi sono NULL
e una proprietà esiste nel database corrente, tale proprietà viene eliminata. Vedere l'esempio B che segue più avanti in questo articolo.
Autorizzazioni
I membri del db_owner e db_ddladmin ruoli predefiniti del database possono eliminare le proprietà estese di qualsiasi oggetto con l'eccezione seguente: db_ddladmin non può aggiungere proprietà al database stesso o a utenti o ruoli.
Gli utenti possono eliminare le proprietà estese agli oggetti di cui sono proprietari o a cui dispongono ALTER
o CONTROL
autorizzazioni.
Esempi
R. Eliminare una proprietà estesa in una colonna
Nell'esempio seguente la proprietà caption
viene rimossa dalla colonna id
nella tabella T1
inclusa nello schema dbo
.
CREATE TABLE T1 (id INT, name CHAR(20));
GO
EXEC sp_addextendedproperty @name = 'caption',
@value = 'Employee ID',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
EXEC sp_dropextendedproperty @name = 'caption',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
DROP TABLE T1;
GO
B. Eliminare una proprietà estesa in un database
Nell'esempio seguente viene rimossa la proprietà denominata MS_Description
dal AdventureWorks2022
database di esempio. Poiché la proprietà si trova nel database stesso, non viene specificato alcun tipo e nome di oggetto.
USE AdventureWorks2022;
GO
EXEC sp_dropextendedproperty @name = N'MS_Description';
GO