Partilhar via


sp_updateextendedproperty (Transact-SQL)

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

Atualiza o valor de uma propriedade ampliada existente.

Transact-SQL convenções de sintaxe

Sintaxe

sp_updateextendedproperty
    [ @name = ] N'name'
    [ , [ @value = ] value ]
    [ , [ @level0type = ] 'level0type' ]
    [ , [ @level0name = ] N'level0name' ]
    [ , [ @level1type = ] 'level1type' ]
    [ , [ @level1name = ] N'level1name' ]
    [ , [ @level2type = ] 'level2type' ]
    [ , [ @level2name = ] N'level2name' ]
[ ; ]

Arguments

[ @name = ] N'nome'

O nome da propriedade a ser atualizado. @name é sysname, sem padrão.

[ @value = ] valor

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 = ] 'nível0tipo'

O utilizador ou tipo definido pelo utilizador. @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 , à medida que os tipos de nível 0 serão removidos numa futura versão do SQL Server. Evite usar esses recursos em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esses recursos. Use SCHEMA como o tipo de nível 0 em vez de USER. Para TYPE, use SCHEMA como tipo de nível 0 e TYPE como tipo de nível 1 .

[ @level0name = ] N'level0name'

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'level1name'

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'nlevel2name'

O nome do tipo de objeto de nível 2 especificado. @level2name é sysname, com um padrão de NULL.

Valores de código de retorno

0 (sucesso) ou 1 (fracasso).

Observações

Quando especificas propriedades estendidas, os objetos numa base de dados SQL Server são classificados em três níveis (0, 1 e 2). O Nível 0 é o nível mais elevado e é definido como objetos contidos no escopo da base de dados. Os objetos de nível 1 estão contidos num esquema ou âmbito de utilizador, e os objetos de nível 2 são contidos por objetos de nível 1. Propriedades estendidas podem ser definidas para objetos em qualquer um destes níveis. As referências a um objeto num nível devem ser qualificadas com os nomes dos objetos de nível superior que os possuem ou contêm.

Dado um @name e @value válidos, se todos os tipos e nomes de objetos forem NULL, a propriedade atualizada pertence à base de dados atual.

Permissions

Os membros dos papéis de base de dados db_owner e db_ddladmin fixos podem atualizar as propriedades estendidas de qualquer objeto com a seguinte exceção: db_ddladmin não podem adicionar propriedades à base de dados em si, nem aos utilizadores ou papéis.

Os utilizadores podem atualizar propriedades estendidas para objetos que possuem, ou para os quais têm permissões ALTER ou CONTROL.

Examples

A. Atualizar uma propriedade estendida numa coluna

O exemplo seguinte atualiza o valor da propriedade Caption na coluna ID da tabela T1.

USE AdventureWorks2022;
GO

CREATE TABLE T1 (id INT, name CHAR (20));
GO

EXECUTE 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.
EXECUTE 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 numa base de dados

O exemplo seguinte cria primeiro uma propriedade estendida na AdventureWorks2025 base de dados de exemplo e depois atualiza o valor dessa propriedade.

USE AdventureWorks2022;
GO

EXECUTE sp_addextendedproperty
    @name = N'NewCaption',
    @value = 'AdventureWorks Sample OLTP Database';
GO

USE AdventureWorks2022;
GO

EXECUTE sp_updateextendedproperty
    @name = N'NewCaption',
    @value = 'AdventureWorks Sample Database';
GO