fn_listextendedproperty (Transact-SQL)
Devuelve valores de propiedades extendidas de los objetos de base de datos.
Convenciones de sintaxis de Transact-SQL
Sintaxis
fn_listextendedproperty (
{ default | 'property_name' | NULL }
, { default | 'level0_object_type' | NULL }
, { default | 'level0_object_name' | NULL }
, { default | 'level1_object_type' | NULL }
, { default | 'level1_object_name' | NULL }
, { default | 'level2_object_type' | NULL }
, { default | 'level2_object_name' | NULL }
)
Argumentos
- { default | 'property_name' | NULL}
Es el nombre de la propiedad. property_name es de tipo sysname. Las entradas válidas son default, NULL o un nombre de propiedad.
{ default | 'level0_object_type' | NULL}
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, TRIGGER, TYPE, USER 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.
- { default | 'level0_object_name' | NULL }
Es el nombre del tipo de objeto de nivel 0 especificado. level0_object_name es de tipo sysname y su valor predeterminado es NULL. Las entradas válidas son default, NULL o un nombre de objeto.
{ default | 'level1_object_type' | NULL }
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.[!NOTA] El valor predeterminado se asigna a NULL y default al tipo de objeto DEFAULT.
- {default | 'level1_object_name' |NULL }
Es el nombre del tipo de objeto de nivel 1 especificado. level1_object_name es de tipo sysname y su valor predeterminado es NULL. Las entradas válidas son default, NULL o un nombre de objeto.
- { default | 'level2_object_type' |NULL }
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 DEFAULT, default (se asigna a NULL) y NULL. Las entradas válidas para level2_object_type son COLUMN, CONSTRAINT, EVENT NOTIFICATION, INDEX, PARAMETER, TRIGGER y NULL.
- { default | 'level2_object_name' |NULL }
Es el nombre del tipo de objeto de nivel 2 especificado. level2_object_name es de tipo sysname y su valor predeterminado es NULL. Las entradas válidas son default, NULL o un nombre de objeto.
Tablas devueltas
Éste es el formato de las tablas que devuelve fn_listextendedproperty.
Nombre de columna | Tipo de datos |
---|---|
objtype |
sysname |
objname |
sysname |
name |
sysname |
value |
sql_variant |
Si la tabla devuelta está vacía, el objeto no tiene propiedades extendidas o el usuario no tiene permisos para mostrar las propiedades extendidas del objeto. Cuando se devuelven propiedades extendidas de la propia base de datos, el valor de las columnas objtype y objname será NULL.
Notas
Si el valor de property_name es NULL o el valor predeterminado, fn_listextendedproperty devuelve todas las propiedades del objeto especificado.
Cuando se especifica el tipo de objeto y el valor del nombre de objeto correspondiente es NULL o el valor predeterminado, fn_listextendedproperty devuelve todas las propiedades extendidas de todos los objetos del tipo especificado.
Los objetos se distinguen en función de sus niveles, siendo el nivel 0 el más alto y el nivel 2 el más bajo. Si se especifica el nombre y el tipo de un objeto de nivel inferior (nivel 1 ó 2), se deben proporcionar valores distintos de NULL o default para el nombre y el tipo del objeto primario. En caso contrario, la función devuelve un conjunto de resultados vacío.
Permisos
Los permisos necesarios para mostrar las propiedades extendidas de los objetos varían en función del tipo de objeto. Para obtener una lista completa de permisos, vea Usar propiedades extendidas en objetos de base de datos.
Ejemplos
A. Mostrar las propiedades extendidas de una base de datos
En el ejemplo siguiente se muestran todas las propiedades extendidas establecidas en el propio objeto de base de datos.
USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO
Éste es el conjunto de resultados.
objtype objname name value
--------- --------- ----------- ----------------------------
NULL NULL MS_Description AdventureWorks Sample OLTP Database
(1 row(s) affected)
B. Mostrar las propiedades extendidas de todas las columnas de una tabla
En el ejemplo siguiente se muestran las propiedades extendidas de las columnas de la tabla ScrapReason
, que se incluye en el esquema Production
.
USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO
Éste es el conjunto de resultados.
objtype objname name value
------- ----------- ------------- ------------------------
COLUMN ScrapReasonID MS_Description Primary key for ScrapReason records.
COLUMN Name MS_Description Failure description.
COLUMN ModifiedDate MS_Description Date the record was last updated.
(3 row(s) affected)
C. Mostrar las propiedades extendidas de todas las tablas de un esquema
En el ejemplo siguiente se muestran las propiedades extendidas de todas las tablas incluidas en el esquema Sales
.
USE AdventureWorks;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO
Vea también
Referencia
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)
Otros recursos
Ver las propiedades extendidas