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'name'
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
, FILEGROUP
PARTITION FUNCTION
REMOTE SERVICE BINDING
ROUTE
SCHEMA
PARTITION SCHEME
MESSAGE TYPE
USER
TRIGGER
SERVICE
TYPE
e .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 NAME
RULE
PROCEDURE
TYPE
TABLE_TYPE
VIEW
SYNONYM
TABLE
QUEUE
e . XML SCHEMA COLLECTION
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
, 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