Leer en inglés

Compartir a través de


sp_updateextendedproperty (Transact-SQL)

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance

Actualiza el valor de una propiedad extendida existente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

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

Nombre de la propiedad que se va a actualizar. @name es sysname, sin ningún valor predeterminado.

[ @value = ] value

Valor asociado a la propiedad . @value es sql_variant, con un valor predeterminado de NULL. El tamaño del valor no puede ser superior a 7500 bytes.

[ @level0type = ] 'level0type'

Tipo definido por el usuario o el usuario. @level0type es varchar(128), con un valor predeterminado de NULL. Las entradas válidas son:

  • 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 y TYPE como tipos de nivel 0 se quitarán en una versión futura de SQL Server. Evite utilizar estas características en los nuevos trabajos de programación y planee modificar las aplicaciones que actualmente las utilizan. Use SCHEMA como tipo de nivel 0 en lugar de USER. Para TYPE, use SCHEMA como tipo de nivel 0 y TYPE como tipo de nivel 1 .

[ @level0name = ] N'level0name'

Nombre del tipo de objeto de nivel 0 especificado. @level0name es sysname, con un valor predeterminado de NULL.

[ @level1type = ] 'level1type'

Tipo de objeto de nivel 1. @level1type es varchar(128), con un valor predeterminado de NULL. Las entradas válidas son:

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

Nombre del tipo de objeto de nivel 1 especificado. @level1name es sysname, con un valor predeterminado de NULL.

[ @level2type = ] 'level2type'

Tipo de objeto de nivel 2. @level2type es varchar(128), con un valor predeterminado de NULL. Las entradas válidas son:

  • COLUMN
  • CONSTRAINT
  • EVENT NOTIFICATION
  • INDEX
  • PARAMETER
  • TRIGGER
  • NULL

[ @level2name = ] N'level2name'

Nombre del tipo de objeto de nivel 2 especificado. @level2name es sysname, con un valor predeterminado de NULL.

Valores de código de retorno

0 (correcto) o 1 (erróneo).

Comentarios

Al especificar propiedades extendidas, los objetos de una base de datos de SQL Server se clasifican en tres niveles (0, 1 y 2). El nivel 0 es el nivel más elevado y se define como los objetos incluidos en el ámbito de la base de datos. Los objetos de nivel 1 se incluyen en un ámbito de esquema o de usuario, y los objetos de nivel 2 están incluidos en los objetos de nivel 1. Se pueden definir propiedades extendidas para los objetos de cualquiera de estos niveles. Las referencias a un objeto de un nivel deben estar calificadas con los nombres de los objetos del nivel superior que son sus propietarios o que los contienen.

Dada una @name y @value válidas, si todos los tipos de objeto y nombres son NULL, la propiedad actualizada pertenece a la base de datos actual.

Permisos

Los miembros del db_owner y db_ddladmin roles fijos de base de datos pueden actualizar las propiedades extendidas de cualquier objeto con la siguiente excepción: db_ddladmin no pueden agregar propiedades a la propia base de datos ni a usuarios o roles.

Los usuarios pueden actualizar las propiedades extendidas a los objetos que poseen o en los que tienen permisos ALTER o CONTROL.

Ejemplos

A Actualización de una propiedad extendida en una columna

En el siguiente ejemplo se actualiza el valor de la propiedad Caption en la columna ID de la tabla T1.

SQL
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. Actualización de una propiedad extendida en una base de datos

El siguiente ejemplo crea primero una propiedad extendida en la base de datos de muestra AdventureWorks2022 y después actualiza el valor de esa propiedad.

SQL
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