sp_dropextendedproperty (Transact-SQL)

Supprime une propriété étendue existante.

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

Syntaxe

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' } 
                ] 
            ] 
        ] 
    ] 

Arguments

  • [ @name= ]{ 'property_name'}
    Nom de la propriété à supprimer. L'argument property_name est du type sysname et ne peut pas avoir la valeur NULL.

  • [ @level0type= ]{ 'level0_object_type'}
    Nom du type d'objet de niveau 0 spécifié. L'argument level0_object_type est de type varchar(128), avec NULL comme valeur par défaut.

    Les entrées valides sont ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE, et NULL.

    Important

    USER et TYPE en tant que types de niveau 0 seront supprimés dans une prochaine version de SQL Server. Évitez d'utiliser ces fonctions dans un nouveau travail de développement et prévoyez la modification des applications qui les utilisent actuellement. Utilisez SCHEMA comme type de niveau 0 à la place de USER. Pour ce qui concerne TYPE, utilisez SCHEMA comme type de niveau 0 et TYPE comme type de niveau 1.

  • [ @level0name= ]{ 'level0_object_name'}
    Nom du type d'objet de niveau 0 spécifié. L'argument level0_object_name est de type sysname, avec NULL comme valeur par défaut.

  • [ @level1type= ]{ 'level1_object_type'}
    Type de l'objet de niveau 1. L'argument level1_object_type est du type varchar(128), avec NULL comme valeur par défaut. Les entrées valides sont AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION et NULL.

  • [ @level1name= ]{ 'level1_object_name'}
    Nom du type d'objet de niveau 1 spécifié. L'argument level1_object_name est du type sysname, avec NULL comme valeur par défaut.

  • [ @level2type= ]{ 'level2_object_type'}
    Type de l'objet de niveau 2. L'argument level2_object_type est du type varchar(128), avec NULL comme valeur par défaut. Les entrées valides sont COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER et NULL.

  • [ @level2name= ]{ 'level2_object_name'}
    Nom du type d'objet de niveau 2 spécifié. L'argument level2_object_name est du type sysname, avec NULL comme valeur par défaut.

Valeurs des codes renvoyés

0 (succès) ou 1 (échec)

Notes

Les objets d'une base de données SQL Server sont répartis sur trois niveaux (0, 1 et 2) pour la définition des propriétés étendues. Le niveau 0 est le niveau le plus élevé et est composé d'objets relevant de l'étendue de la base de données. Les objets de niveau 1 sont contenus dans une étendue de schéma ou d'utilisateur, tandis que les objets de niveau 2 sont contenus dans des objets de niveau 1. Vous pouvez définir des propriétés étendues pour des objets de n'importe quel niveau. Les références à un objet d'un niveau donné doivent être qualifiées par les types et les noms de tous les objets de niveau supérieur.

Si tous les types et noms d'objets ont la valeur NULL et qu'une propriété existe dans la base de données active, cette propriété est supprimée (sous réserve que l'argument property_name fourni soit correct). Consultez l'exemple B fourni plus loin dans cette rubrique.

Autorisations

Les membres des rôles de base de données fixes db_owner et db_ddladmin peuvent supprimer des propriétés étendues de n'importe quel objet, avec toutefois la restriction suivante : Le rôle db_ddladmin ne peut pas ajouter de propriétés à la base de données elle-même, aux utilisateurs ou aux rôles.

Les utilisateurs peuvent supprimer des propriétés étendues sur des objets qu'ils possèdent ou pour lesquels ils bénéficient d'autorisations ALTER ou CONTROL. Pour obtenir une liste complète des autorisations requises, consultez Utilisation de propriétés étendues sur les objets de base de données.

Exemples

A. Suppression d'une propriété étendue d'une colonne

L'exemple suivant supprime la propriété 'caption' de la colonne id dans la table T1 contenue dans le schéma 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. Suppression d'une propriété étendue d'une base de données

L'exemple suivant supprime la propriété nommée MS_Description de la base de données AdventureWorks. Étant donné que la propriété est dans la base de données, aucun type et nom d'objet n'est spécifié.

USE AdventureWorks;
GO
EXEC sp_dropextendedproperty 
@name = N'MS_Description';
GO