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 SCHEME
ROUTE
PARTITION FUNCTION
MESSAGE TYPE
USER
SERVICE
REMOTE SERVICE BINDING
SCHEMA
, TRIGGER
, y . TYPE
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. 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
, RULE
TABLE
SYNONYM
QUEUE
PROCEDURE
TYPE
VIEW
TABLE_TYPE
, XML SCHEMA COLLECTION
y .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 NOTIFICATION
INDEX
, PARAMETER
, , TRIGGER
y 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