sp_dropextendedproperty (Transact-SQL)
Descarta uma propriedade estendida existente.
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 descartada. 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.
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 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 TYP 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. Objetos de nível 1 são contidos em um esquema ou escopo de usuário e os objetos de nível 2 sã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 AdventureWorks. Como a propriedade está no banco de dados em si, nenhum tipo de objeto e nome é especificado.
USE AdventureWorks;
GO
EXEC sp_dropextendedproperty
@name = N'MS_Description';
GO
Consulte também