Compartilhar via


sp_dropextendedproperty (Transact-SQL)

Descarta uma propriedade estendida existente.

Ícone de vínculo de tópico Convenções da 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 novos trabalhos 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 de 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 de NULL.

  • [ @level2type= ]{ 'level2_object_type'}
    É o tipo de objeto de nível 2. level2_object_type é varchar(128) com um padrão de 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 fixas db_owner e db_ddladmin podem remover as propriedades estendidas de qualquer objeto, com a seguinte exceção: db_ddladmin não pode adicionar propriedades ao próprio banco de dados, 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.

Exemplos

A.Removendo 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.Removendo uma propriedade estendida em um banco de dados

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

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

Consulte também

Referência

Procedimentos armazenados do Mecanismo de Banco de Dados (Transact-SQL)

sys.fn_listextendedproperty (Transact-SQL)

sp_addextendedproperty (Transact-SQL)

sp_updateextendedproperty (Transact-SQL)

sys.extended_properties (Transact-SQL)