Compartilhar via


sp_updateextendedproperty (Transact-SQL)

Atualiza o valor de uma propriedade estendida existente.

Ícone de vínculo de tópico Convenções da sintaxe Transact-SQL

Sintaxe

sp_updateextendedproperty
    [ @name = ]{ 'property_name' } 
    [ , [ @value = ]{ 'value' }
        [, [ @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 atualizada. property_name é sysname e não pode ser NULL.

  • [ @value= ]{ 'value'}
    É o valor associado à propriedade. value é sql_variant, com um padrão de NULL. O tamanho de value não pode ser maior que 7.500 bytes.

  • [ @level0type= ]{ 'level0_object_type'}
    É o usuário ou tipo definido pelo usuário. level0_object_type é 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, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE e NULL.

    Observação importanteImportante

    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 novos trabalhos 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 TYPE como o tipo de nível 1.

  • [ @level0name= ]{ 'level0_object_name'}
    É o nome do tipo de objeto de nível 1 especificado. level0_object_name é sysname com um padrão de NULL.

  • [ @level1type= ]{ 'level1_object_type'}
    É o tipo de objeto de nível 1. level1_object_type é varchar(128) com um padrão de NULL. As entradas válidas são AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, 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 de NULL.

  • [ @level2type= ]{ 'level2_object_type'}
    É o tipo de objeto de nível 2. level2_object_type é varchar(128) com um padrão de 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 de 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 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 property_name e um value válidos, se todos os tipos e nomes de objeto forem nulos, 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 pode adicionar propriedades ao próprio banco de dados, ou a usuários ou funções.

Os usuários podem atualizar as propriedades estendidas dos objetos que possuírem ou para os quais tenham as permissões ALTER ou CONTROL.

Exemplos

A.Atualizando uma propriedade estendida em uma coluna

O exemplo a seguir atualiza o valor de propriedade Caption na coluna ID da tabela T1.

USE AdventureWorks2012;
GO
CREATE TABLE T1 (id int , name char (20));
GO
EXEC sp_addextendedproperty 
    @name = N'Caption'
    ,@value = N'Employee ID'
    ,@level0type = N'Schema', @level0name = dbo
    ,@level1type = N'Table',  @level1name = T1
    ,@level2type = N'Column', @level2name = id;
GO
--Update the extended property.
EXEC sp_updateextendedproperty 
    @name = N'Caption'
    ,@value = 'Employee ID must be unique.'
    ,@level0type = N'Schema', @level0name = dbo
    ,@level1type = N'Table',  @level1name = T1
    ,@level2type = N'Column', @level2name = id;
GO

B.Atualizando uma propriedade estendida em um banco de dados

O exemplo a seguir primeiro cria uma propriedade estendida no banco de dados de exemplo AdventureWorks2012 e atualiza o valor dessa propriedade.

USE AdventureWorks2012;
GO
EXEC sp_addextendedproperty 
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample OLTP Database';
GO
USE AdventureWorks2012;
GO
EXEC sp_updateextendedproperty 
@name = N'NewCaption', @value = 'AdventureWorks2012 Sample Database';
GO

Consulte também

Referência

Procedimentos armazenados do Mecanismo de Banco de Dados (Transact-SQL)

sys.fn_listextendedproperty (Transact-SQL)

sp_addextendedproperty (Transact-SQL)

sp_dropextendedproperty (Transact-SQL)

sys.extended_properties (Transact-SQL)