sp_updateextendedproperty (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure
Atualiza o valor de uma propriedade estendida existente.
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_updateextendedproperty
[ @name = ] N'name'
[ , [ @value = ] value ]
[ , [ @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 atualizada. @name é sysname, sem padrão.
[ @value = ] value
O valor associado à propriedade. @value é sql_variant, com um padrão de NULL
. O tamanho do valor não pode ser superior a 7.500 bytes.
@level0type [ = ] 'level0type'
O usuário ou o tipo definido pelo usuário. @level0type é varchar(128), com um padrão de NULL
. As entradas válidas são:
ASSEMBLY
CONTRACT
EVENT NOTIFICATION
FILEGROUP
MESSAGE TYPE
PARTITION FUNCTION
PARTITION SCHEME
PLAN GUIDE
REMOTE SERVICE BINDING
ROUTE
SCHEMA
SERVICE
USER
TRIGGER
TYPE
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:
ASSEMBLY
CONTRACT
EVENT NOTIFICATION
FILEGROUP
MESSAGE TYPE
PARTITION FUNCTION
PARTITION SCHEME
PLAN GUIDE
REMOTE SERVICE BINDING
ROUTE
SCHEMA
SERVICE
USER
TRIGGER
TYPE
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
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 nomes dos objetos de nível superior que as possua ou contenha.
Dado um @name e @value válidos, se todos os tipos e nomes de objetos forem NULL
, a propriedade atualizada pertencerá ao banco de dados atual.
Permissões
Os membros das funções de banco de dados fixas db_owner e db_ddladmin podem atualizar as 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 atualizar propriedades estendidas para objetos que possuem ou nos quais têm permissões ALTER ou CONTROL.
Exemplos
R. Atualizar uma propriedade estendida em uma coluna
O exemplo a seguir atualiza o valor de propriedade Caption
na coluna ID
da tabela T1
.
USE AdventureWorks2022;
GO
CREATE TABLE T1 (id INT, name CHAR(20));
GO
EXEC sp_addextendedproperty @name = N'Caption',
@value = N'Employee ID',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
--Update the extended property.
EXEC sp_updateextendedproperty @name = N'Caption',
@value = 'Employee ID must be unique.',
@level0type = 'SCHEMA',
@level0name = N'dbo',
@level1type = 'TABLE',
@level1name = N'T1',
@level2type = 'COLUMN',
@level2name = N'id';
GO
B. Atualizar uma propriedade estendida em um banco de dados
O exemplo a seguir primeiro cria uma propriedade estendida no banco de dados de exemplo AdventureWorks2022
e atualiza o valor dessa propriedade.
USE AdventureWorks2022;
GO
EXEC sp_addextendedproperty @name = N'NewCaption',
@value = 'AdventureWorks Sample OLTP Database';
GO
USE AdventureWorks2022;
GO
EXEC sp_updateextendedproperty @name = N'NewCaption',
@value = 'AdventureWorks Sample Database';
GO