sp_dropextendedproperty (Transact-SQL)

Descarta uma propriedade estendida existente.

Ícone de vínculo de tópicoConvenções de sintaxe Transact-SQL

Sintaxe

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

Argumentos

  • [ @name = ]{ 'property_name'}
    É o nome da propriedade a ser removida. property_name é sysname e não pode ser NULL.

  • [ @level0type = ]{ 'level0_object_type'}
    É o nome do tipo de objeto de nível 0 especificado. level0_object_type é varchar(128), com um padrão NULL.

    As entradas válidas são ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE e NULL.

    Observação importanteImportante

    USER e TYPE como tipos de nível 0 serão removidos em uma versão futura do SQL Server. Evite usar esses recursos em novo trabalho de desenvolvimento e planeje modificar os aplicativos que atualmente os utilizam. Use SCHEMA como o tipo de nível 0 em vez de USER. Para TYPE, use SCHEMA como o tipo de nível 0 e TYPE como o tipo de nível 1.

  • [ @level0name = ]{ 'level0_object_name'}
    É o nome do tipo de objeto de nível 0 especificado. level0_object_name é sysname com um padrão NULL.

  • [ @level1type = ]{ 'level1_object_type'}
    É o tipo de objeto de nível 1. level1_object_type é varchar(128) com um padrão NULL. As entradas válidas são AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TABLE_TYPE, TYPE, VIEW, XML SCHEMA COLLECTION e NULL.

  • [ @level1name = ]{ 'level1_object_name'}
    É o nome do tipo de objeto de nível 1 especificado. level1_object_name é sysname com um padrão NULL.

  • [ @level2type = ]{ 'level2_object_type'}
    É o tipo de objeto de nível 2. level2_object_type é varchar(128) com um padrão NULL. As entradas válidas são COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER e NULL.

  • [ @level2name = ]{ 'level2_object_name'}
    É o nome do tipo de objeto de nível 2 especificado. level2_object_name é sysname com um padrão NULL.

Valores de código de retorno

0 (êxito) ou 1 (falha)

Comentários

Com o propósito de especificar as propriedades estendidas, os objetos em um banco de dados do SQL Server são classificados em três níveis: 0, 1 e 2. O nível 0 é o nível mais alto e está definido como objetos que são contidos no escopo do banco de dados. Os objetos de nível 1 estão contidos em um esquema ou escopo de usuário e os objetos de nível 2 estão contidos pelos objetos de nível 1. As propriedades estendidas podem ser definidas para os objetos em qualquer um desses níveis. As referências a um objeto de um nível precisam ser qualificadas com os tipos e os nomes de todos os objetos de nível.

Dado um property_name válido, se todos os tipos e nomes de objeto forem nulos e a propriedade existir no banco de dados atual, essa propriedade será excluída. Veja o exemplo B a seguir, após este tópico.

Permissões

Os membros das funções de banco de dados fixa db_owner e db_ddladmin podem descartar propriedades estendidas de qualquer objeto com a seguinte exceção: db_ddladmin não pode adicionar propriedades ao banco de dados em si ou a usuários ou funções.

Os usuários podem descartar as propriedades estendidas para os objetos que possuírem ou para os quais tenham as permissões ALTER ou CONTROL. Para obter uma lista completa das permissões necessárias, consulte Usando propriedades estendidas em objetos de banco de dados.

Exemplos

A. Descartando uma propriedade estendida em uma coluna

O exemplo a seguir remove a propriedade caption da coluna id na tabela T1 contida no esquema 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. Descartando uma propriedade estendida em um banco de dados

O exemplo a seguir remove a propriedade chamada MS_Description do banco de dados de exemplo AdventureWorks2008R2. Como a propriedade está no banco de dados em si, nenhum tipo de objeto e nome é especificado.

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