Partilhar via


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