Compartir a través de


fn_listextendedproperty (Transact-SQL)

Devuelve valores de propiedades extendidas de los objetos de base de datos.

Icono de vínculo a temasConvenciones 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.

    Nota importanteImportante

    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

Este 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.

Comentarios

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 AdventureWorks2008R2;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO

El conjunto de resultados es el siguiente.

objtype objname name value

--------- --------- ----------- ----------------------------

NULL NULL MS_Description AdventureWorks2008 Sample OLTP Database

(1 fila afectada)

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 AdventureWorks2008R2;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO

El conjunto de resultados es el siguiente.

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 filas afectadas)

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 AdventureWorks2008R2;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO