sp_updateextendedproperty (Transact-SQL)
Actualiza el valor de una propiedad extendida existente.
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 que se va a asociar 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.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. 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)
Notas
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. Para obtener una lista completa de los objetos y sus tipos de nivel 0, 1 y 2 válidos, vea Usar propiedades extendidas en objetos de base de datos.
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 las funciones fijas de bases 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 ni a las funciones.
Los usuarios pueden actualizar las propiedades extendidas de los objetos de los que sean propietarios, o para los que tengan permisos ALTER o CONTROL. Para obtener una lista completa los permisos requeridos, vea Usar propiedades extendidas en objetos de base de datos.
Ejemplos
A. Actualizar una propiedad extendida de una columna
El siguiente ejemplo actualiza el valor de la propiedad Caption en la columna ID de la tabla T1.
USE AdventureWorks;
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 AdventureWorks y después actualiza el valor de esa propiedad.
USE AdventureWorks;
GO
EXEC sp_addextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks Sample OLTP Database';
GO
USE AdventureWorks;
GO
EXEC sp_updateextendedproperty
@name = N'NewCaption', @value = 'AdventureWorks Sample Database';
GO
Vea también