sp_dropextendedproperty (Transact-SQL)
Quita una propiedad extendida existente.
Sintaxis
sp_dropextendedproperty
[ @name = ] { 'property_name' }
[ , [ @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 va a quitarse. property_name es de tipo sysname y no puede ser NULL.[ @level0type = ]{ 'level0_object_type'}
Es el nombre del tipo de objeto de nivel 0 especificado. 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 0 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, TABLE_TYPE, 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
Con el fin de especificar las propiedades extendidas, los objetos de una base de datos de SQL Server se clasifican en tres niveles: 0, 1y 2. El nivel 0 es el nivel más elevado y corresponde a 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 completarse con los tipos y nombres de los objetos de nivel superior.
Dado un valor de property_name válido, si todos los tipos y nombres de objeto son NULL y existe una propiedad en la base de datos actual, esa propiedad se elimina. Vea el ejemplo B más adelante en este tema.
Permisos
Los miembros de los roles fijos de base de datos db_owner y db_ddladmin pueden eliminar 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 quitar propiedades extendidas para los objetos que poseen o en los que tienen permisos ALTER o CONTROL. Para obtener una lista completa de los permisos necesarios, vea Usar propiedades extendidas en objetos de base de datos.
Ejemplos
A. Quitar una propiedad extendida de una columna
En el ejemplo siguiente se quita la propiedad caption de la columna id de la tabla T1 contenida en el esquema dbo.
CREATE TABLE T1 (id int , name char (20));
GO
EXEC sp_addextendedproperty
@name = 'caption'
,@value = 'Employee ID'
,@level0type = 'schema'
,@level0name = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
EXEC sp_dropextendedproperty
@name = 'caption'
,@level0type = 'schema'
,@level0name = dbo
,@level1type = 'table'
,@level1name = 'T1'
,@level2type = 'column'
,@level2name = id;
GO
DROP TABLE T1;
GO
B. Quitar una propiedad extendida de una base de datos
En el ejemplo siguiente se quita la propiedad denominada MS_Description de la base de datos de ejemplo AdventureWorks2008R2. La propiedad se encuentra en la propia base de datos, por lo que no se especifican tipos ni nombres de objeto.
USE AdventureWorks2008R2;
GO
EXEC sp_dropextendedproperty
@name = N'MS_Description';
GO
Vea también