sys.fn_listextendedproperty (Transact-SQL)
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Devuelve valores de propiedad extendidos de objetos de bases 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 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 varchar(128), con un valor predeterminado de 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
- NULL
Importante
Los tipos 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 }
Nombre del tipo de objeto de nivel 0 especificado. level0_object_name es sysname con un valor predeterminado de NULL. Las entradas válidas son default, NULL o un nombre de objeto.
{ default | 'level1_object_type' | NULL }
Tipo de objeto de nivel 1. level1_object_type es varchar(128) con un valor predeterminado de NULL.
Las entradas válidas son:
- AGGREGATE
- DEFAULT
- FUNCTION
- NOMBRE DE ARCHIVO LÓGICO
- PROCEDURE
- QUEUE
- RULE
- SYNONYM
- TABLE
- TYPE
- VIEW
- XML SCHEMA COLLECTION
- NULL
Nota:
El valor predeterminado se asigna a NULL y default al tipo de objeto DEFAULT.
{default | 'level1_object_name' |NULL }
Nombre del tipo de objeto de nivel 1 especificado. level1_object_name es sysname con un valor predeterminado de 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 varchar(128) con un valor predeterminado de NULL.
Las entradas válidas son:
- DEFAULT
- valor predeterminado (se asigna a NULL)
- NULL. Las entradas válidas para level2_object_type son:
- COLUMN
- CONSTRAINT
- EVENT NOTIFICATION
- INDEX
- PARÁMETRO
- TRIGGER
- NULL
{ default | 'level2_object_name' |NULL }
Es el nombre del tipo de objeto de nivel 2 especificado. level2_object_name es sysname con un valor predeterminado de NULL. Las entradas válidas son default, NULL o un nombre de objeto.
Tablas devueltas
Este es el formato de las tablas que devuelve fn_listextendedproperty.
Nombre de la columna | Tipo de datos |
---|---|
objtype | sysname |
objname | sysname |
nombre | 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.
Comentarios
Si el valor de property_name es NULL o 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.
objname se ha corregido como Latin1_General_CI_AI. Sin embargo, puede solucionarlo invalidando la intercalación en comparación.
SELECT o.[object_id] AS 'table_id', o.[name] 'table_name',
0 AS 'column_order', NULL AS 'column_name', NULL AS 'column_datatype',
NULL AS 'column_length', Cast(e.value AS varchar(500)) AS 'column_description'
FROM AdventureWorks.sys.objects AS o
LEFT JOIN sys.fn_listextendedproperty(N'MS_Description', N'user',N'HumanResources',N'table', N'Employee', null, default) AS e
ON o.name = e.objname COLLATE SQL_Latin1_General_CP1_CI_AS
WHERE o.name = 'Employee';
Permisos
Los permisos necesarios para mostrar las propiedades extendidas de los objetos varían en función del tipo de objeto.
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 AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO
Este es el conjunto de resultados.
objtype objname name value
--------- --------- ----------- ----------------------------
NULL NULL MS_Description AdventureWorks2008 Sample OLTP Database
(1 row(s) affected)
B. Mostrar las propiedades extendidas de todas las columnas de una tabla
En el ejemplo siguiente se enumeran las propiedades extendidas de las columnas de la ScrapReason
tabla. que se incluye en el esquema Production
.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO
Este 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 enumeran las propiedades extendidas de todas las tablas contenidas en el Sales
esquema.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO
Consulte también
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)