Compartir a través de


sp_updateextendedproperty (Transact-SQL)

Actualiza el valor de una propiedad extendida existente.

Icono de vínculo a temas Convenciones de sintaxis de Transact-SQL

Sintaxis

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'}
    Es el nombre de la propiedad que se va a actualizar. property_name es de tipo sysname y no puede ser NULL.

  • [ @value= ]{ 'value'}
    Es el valor asociado a la propiedad. value es de tipo sql_variant y su valor predeterminado es NULL. El tamaño del parámetro value no puede ser superior a 7.500 bytes.

  • [ @level0type= ]{ 'level0_object_type'}
    Es el usuario o el tipo definido por el usuario. level0_object_type es de tipo varchar(128) y su valor predeterminado es NULL. Las entradas válidas son ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, MESSAGE TYPE, PARTITION FUNCTION, PARTITION SCHEME, REMOTE SERVICE BINDING, ROUTE, SCHEMA, SERVICE, USER, TRIGGER, TYPE y NULL.

    Nota importanteImportante

    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. En lugar de USER, use SCHEMA como tipo de nivel 0. Para TYPE, use SCHEMA como tipo de nivel 0 y TYPE como tipo de nivel 1.

  • [ @level0name= ]{ 'level0_object_name'}
    Es el nombre del tipo de objeto de nivel 1 especificado. level0_object_name es de tipo sysname y su valor predeterminado es NULL.

  • [ @level1type= ]{ 'level1_object_type'}
    Es el tipo de objeto de nivel 1. level1_object_type es de tipo varchar(128) y su valor predeterminado es NULL. Las entradas válidas son AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, PROCEDURE, QUEUE, RULE, SYNONYM, TABLE, TYPE, VIEW, XML SCHEMA COLLECTION y NULL.

  • [ @level1name= ]{ 'level1_object_name'}
    Es el nombre del tipo de objeto de nivel 1 especificado. level1_object_name es de tipo sysname y su valor predeterminado es NULL.

  • [ @level2type= ]{ 'level2_object_type'}
    Es el tipo de objeto de nivel 2. level2_object_type es de tipo varchar(128) y su valor predeterminado es NULL. Las entradas válidas son COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER y NULL.

  • [ @level2name= ]{ 'level2_object_name'}
    Es el nombre del tipo de objeto de nivel 2 especificado. level2_object_name es de tipo sysname y su valor predeterminado es NULL.

Valores de código de retorno

0 (correcto) o 1 (error)

Comentarios

Los objetos de una base de datos de SQL Server se clasifican en tres niveles (0, 1, 2) con el fin de especificar las propiedades extendidas. 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.

Dados unos parámetros property_name y value válidos, si todos los tipos de objetos y nombres son NULL, la propiedad actualizada pertenece a la base de datos actual.

Permisos

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

Los usuarios pueden actualizar las propiedades extendidas de los objetos de los que sean propietarios, o para los que tengan permisos ALTER o CONTROL.

Ejemplos

A.Actualizar una propiedad extendida de una columna

En el siguiente ejemplo se actualiza el valor de la propiedad Caption en la columna ID de la tabla 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.Actualizar una propiedad extendida de una base de datos

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

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

Vea también

Referencia

Procedimientos almacenados del motor de base de datos (Transact-SQL)

sys.fn_listextendedproperty (Transact-SQL)

sp_addextendedproperty (Transact-SQL)

sp_dropextendedproperty (Transact-SQL)

sys.extended_properties (Transact-SQL)