Compartir a través de


sp_dropextendedproperty (Transact-SQL)

Se aplica a: SQL Server

Quita una propiedad extendida existente.

Convenciones de sintaxis de Transact-SQL

Sintaxis

sp_dropextendedproperty
    [ @name = ] N'name'
    [ , [ @level0type = ] 'level0type' ]
    [ , [ @level0name = ] N'level0name' ]
    [ , [ @level1type = ] 'level1type' ]
    [ , [ @level1name = ] N'level1name' ]
    [ , [ @level2type = ] 'level2type' ]
    [ , [ @level2name = ] N'level2name' ]
[ ; ]

Argumentos

[ @name = ] N'name'

Nombre de la propiedad que se va a quitar. @name es sysname y no puede ser NULL.

[ @level0type = ] 'level0type'

Nombre del tipo de objeto de nivel 0 especificado. @level0type es varchar(128), con un valor predeterminado de NULL.

Las entradas válidas son ASSEMBLY, CONTRACT, EVENT NOTIFICATION, FILEGROUP, PARTITION SCHEMEROUTEPARTITION FUNCTIONMESSAGE TYPEUSERSERVICEREMOTE SERVICE BINDINGSCHEMA, TRIGGER, y . TYPENULL

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

Tipo de objeto de nivel 1. @level1type es varchar(128), con un valor predeterminado de NULL.

Las entradas válidas son AGGREGATE, DEFAULT, FUNCTION, LOGICAL FILE NAME, RULETABLESYNONYMQUEUEPROCEDURETYPEVIEWTABLE_TYPE, XML SCHEMA COLLECTIONy .NULL

[ @level1name = ] N'level1name'

Nombre del tipo de objeto de nivel 1 especificado. @level1name es sysname, con un valor predeterminado de NULL.

[ @level2type = ] 'level2type'

Tipo de objeto de nivel 2. @level2type es varchar(128), con un valor predeterminado de NULL.

Las entradas válidas son COLUMN, CONSTRAINT, EVENT NOTIFICATIONINDEX, PARAMETER, , TRIGGERy 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 completarse con los tipos y nombres de los objetos de nivel superior.

Dado un nombre de propiedad válido @name, si todos los tipos y nombres de objeto son NULL y existe una propiedad en la base de datos actual, esa propiedad se elimina. Consulte el ejemplo B siguiente más adelante en este artículo.

Permisos

Los miembros del db_owner y db_ddladmin roles fijos de base de datos pueden quitar 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 quitar propiedades extendidas a los objetos que poseen o en los que tienen ALTER permisos o CONTROL .

Ejemplos

A Quitar una propiedad extendida en 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 = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

EXEC sp_dropextendedproperty @name = 'caption',
    @level0type = 'SCHEMA',
    @level0name = N'dbo',
    @level1type = 'TABLE',
    @level1name = N'T1',
    @level2type = 'COLUMN',
    @level2name = N'id';
GO

DROP TABLE T1;
GO

B. Quitar una propiedad extendida en una base de datos

En el ejemplo siguiente se quita la propiedad denominada MS_Description de la AdventureWorks2022 base de datos de ejemplo. La propiedad se encuentra en la propia base de datos, por lo que no se especifican tipos ni nombres de objeto.

USE AdventureWorks2022;
GO

EXEC sp_dropextendedproperty @name = N'MS_Description';
GO