Condividi tramite


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, FILEGROUPMESSAGE TYPE, PARTITION FUNCTION, , PARTITION SCHEME, REMOTE SERVICE BINDINGROUTE, USERSERVICETRIGGERSCHEMATYPEe .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, PROCEDUREQUEUE, , RULE, SYNONYMTYPETABLE_TYPEVIEWTABLEXML SCHEMA COLLECTIONe .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, INDEXPARAMETER, , TRIGGERe 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