sp_updateextendedproperty (Transact-SQL)
Actualiza el valor de una propiedad extendida existente.
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.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)
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)