sp_dropextendedproperty (Transact-SQL)
Elimina un proprietà estesa esistente.
Sintassi
sp_dropextendedproperty
[ @name = ] { 'property_name' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]
Argomenti
[ @name= ]{ 'property_name'}
Nome della proprietà che si desidera eliminare. property_name è di tipo sysname e non può essere NULL.[ @level0type= ]{ 'level0_object_type'}
Nome del tipo di oggetto di livello 0 specificato. level0_object_type è di tipo varchar(128) e il valore predefinito è NULL.I possibili valori sono ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE e NULL.
Importante I tipi USER e TYPE come tipi di livello 0 verranno rimossi in una versione futura di SQL Server. Evitare pertanto di utilizzarli in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui sono stati implementati. Utilizzare SCHEMA come tipo di livello 0 anziché USER. Per TYPE utilizzare SCHEMA come tipo di livello 0 e TYPE come tipo di livello 1.
[ @level0name= ]{ 'level0_object_name'}
Nome del tipo di oggetto di livello 0 specificato. level0_object_name è di tipo sysname e il valore predefinito è NULL.[ @level1type= ]{ 'level1_object_type'}
Tipo di oggetto di livello 1. level1_object_type è di tipo varchar(128) e il valore predefinito è NULL. I possibili valori sono AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION e NULL.[ @level1name= ]{ 'level1_object_name'}
Nome del tipo di oggetto di livello 1 specificato. level1_object_name è di tipo sysname e il valore predefinito è NULL.[ @level2type= ]{ 'level2_object_type'}
Tipo di oggetto di livello 2. level2_object_type è di tipo varchar(128) e il valore predefinito è NULL. I possibili valori sono COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER e NULL.[ @level2name= ]{ 'level2_object_name'}
Nome del tipo di oggetto di livello 2 specificato. level2_object_name è di tipo sysname e il valore predefinito è NULL.
Valori restituiti
0 (esito positivo) o 1 (esito negativo)
Osservazioni
Ai fini della definizione delle proprietà estese, gli oggetti inclusi in un database di SQL Server vengono classificati in base a tre livelli, ovvero 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.
Quando property_name è un valore valido, se tutti i tipi e i nomi di oggetto sono Null ed è disponibile una proprietà del database corrente, tale proprietà viene eliminata. Vedere l'esempio B più avanti in questo argomento.
Autorizzazioni
I membri dei ruoli predefiniti del database db_owner e db_ddladmin possono eliminare le proprietà estese di qualsiasi oggetto, anche se il ruolo db_ddladmin non può aggiungere proprietà al database stesso oppure a utenti o ruoli.
Gli utenti possono eliminare le proprietà estese degli oggetti di cui sono proprietari oppure per i quali dispongono delle autorizzazioni ALTER o CONTROL. Per l'elenco completo delle autorizzazioni richieste, vedere Utilizzo di proprietà estese su oggetti di database.
Esempi
A. Eliminazione di 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 = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
EXEC sp_dropextendedproperty
@name = 'caption'
,@level0type = 'schema'
,@level0name = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
DROP TABLE T1;
GO
B. Eliminazione di una proprietà estesa in un database
Nell'esempio seguente la proprietà denominata MS_Description viene rimossa dal database di esempio AdventureWorks. Poiché la proprietà si trova nel database stesso, non viene specificato alcun tipo e nome di oggetto.
USE AdventureWorks;
GO
EXEC sp_dropextendedproperty
@name = N'MS_Description';
GO
Vedere anche