sys.sp_updateextendedproperty (Transact-SQL)

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLBase de datos SQL en Microsoft Fabric

Actualiza el valor de una propiedad extendida existente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sys.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'nombre'

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

[ @value = ] valor

Valor asociado a la propiedad . @value es sql_variant, con un valor predeterminado de NULL. El tamaño de @value no puede tener más de 7500 bytes.

[ @level0type = ] 'nivel0tipo'

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 = ] 'nivel1tipo'

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 = ] 'nivel2tipo'

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

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.

Note

En Azure SQL Database y SQL Database en Microsoft Fabric, la USE declaración no está disponible. En su lugar, conéctate directamente a la base de datos prevista y ejecuta el resto de la muestra de código.

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. 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 AdventureWorks2025 y después actualiza el valor de esa propiedad.

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