Partilhar via


sp_dropextendedproperty (Transact-SQL)

Aplica-se: SQL Server

Descarta uma propriedade estendida existente.

Convenções de sintaxe de Transact-SQL

Sintaxe

sp_dropextendedproperty
    [ @name = ] N'name'
    [ , [ @level0type = ] 'level0type' ]
    [ , [ @level0name = ] N'level0name' ]
    [ , [ @level1type = ] 'level1type' ]
    [ , [ @level1name = ] N'level1name' ]
    [ , [ @level2type = ] 'level2type' ]
    [ , [ @level2name = ] N'level2name' ]
[ ; ]

Argumentos

@name [ = ] N'nome'

O nome da propriedade a ser descartada. @name é sysname e não pode ser NULL.

@level0type [ = ] 'level0type'

O nome do tipo de objeto de nível 0 especificado. @level0type é varchar(128), com um padrão de NULL.

As entradas válidas são ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUPPARTITION FUNCTIONREMOTE SERVICE BINDINGROUTESCHEMAPARTITION SCHEMEMESSAGE TYPEUSERTRIGGERSERVICETYPEe .NULL

Importante

USER e TYPE como os 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 os usam atualmente. 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 [ = ] N'nível0nome'

O nome do tipo de objeto de nível 0 especificado. @level0name é sysname, com um padrão de NULL.

@level1type [ = ] 'nível1tipo'

O tipo de objeto de nível 1. @level1type é varchar(128), com um padrão de NULL.

As entradas válidas são AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAMERULEPROCEDURETYPETABLE_TYPEVIEWSYNONYMTABLEQUEUEe . XML SCHEMA COLLECTIONNULL

@level1name [ = ] N'nível1nome'

O nome do tipo de objeto de nível 1 especificado. @level1name é sysname, com um padrão de NULL.

@level2type [ = ] 'nível2tipo'

O tipo de objeto de nível 2. @level2type é varchar(128), com um padrão de NULL.

As entradas válidas são COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER, e NULL.

@level2name [ = ] N'nível2nome'

O nome do tipo de objeto de nível 2 especificado. @level2name é sysname, com um padrão de NULL.

Valores do código de retorno

0 (sucesso) ou 1 (falha).

Comentários

Quando você especifica 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 mais alto e é definido como objetos que estã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 nome de propriedade válido @name, se todos os tipos e nomes de objeto forem NULL e existir uma propriedade no banco de dados atual, essa propriedade será excluída. Consulte o Exemplo B a seguir mais adiante neste artigo.

Permissões

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

Os usuários podem descartar propriedades estendidas para objetos que possuem ou sobre os quais têm ALTER CONTROL permissões.

Exemplos

R. Soltar 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 = 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. Descartar uma propriedade estendida em um banco de dados

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

USE AdventureWorks2022;
GO

EXEC sp_dropextendedproperty @name = N'MS_Description';
GO