sp_dropextendedproperty (Transact-SQL)

Aplica-se a: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, , , , , PARTITION FUNCTIONEVENT NOTIFICATIONPARTITION SCHEMEREMOTE SERVICE BINDINGMESSAGE TYPEROUTESCHEMAFILEGROUPCONTRACTUSERTRIGGERSERVICETYPEe .NULL

Importante

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 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, , , , , , RULEFUNCTIONQUEUEPROCEDURESYNONYMTABLELOGICAL FILE NAMEDEFAULTTYPEVIEWTABLE_TYPEXML SCHEMA COLLECTIONe .NULL

@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, , , , EVENT NOTIFICATIONINDEXCONSTRAINT, PARAMETERe .NULLTRIGGER

@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 uma propriedade existir no banco de dados atual, essa propriedade será excluída. Consulte o Exemplo B a seguir 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 pode 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 nos quais eles têm ALTER ou 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. Soltar uma propriedade estendida em um banco de dados

O exemplo a seguir remove a propriedade nomeada MS_Description do banco de dados de AdventureWorks2022 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