sys.fn_listextendedproperty (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает значения расширенных свойств объектов базы данных.
Соглашения о синтаксисе Transact-SQL
Синтаксис
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 }
)
Аргументы
{ по умолчанию | 'property_name' | NULL}
Имя свойства. property_name — sysname. Допустимыми входными значениями являются default, NULL или имя свойства.
{ по умолчанию | 'level0_object_type' | NULL}
Пользователь или тип, определяемый пользователем. level0_object_type — varchar(128) с значением NULL по умолчанию.
Допустимые входные значения:
- ASSEMBLY
- CONTRACT
- EVENT NOTIFICATION
- ФАЙЛОВАЯ ГРУППА
- MESSAGE TYPE
- PARTITION FUNCTION
- PARTITION SCHEME
- REMOTE SERVICE BINDING
- ROUTE
- СХЕМА
- СЛУЖБА
- ТРИГГЕР
- ТИП
- Пользователь
- NULL
Внимание
Типы USER и TYPE в качестве уровня 0 будут удалены в будущей версии SQL Server. Старайтесь не использовать эти функции в новых разработках и предусмотрите соответствующие изменения в приложениях, которые используют их в настоящее время. Тип SCHEMA следует использовать в качестве типа уровня 0 вместо USER. В значении аргумента TYPE следует указывать тип SCHEMA в качестве типа уровня 0 и TYPE в качестве типа уровня 1.
{ по умолчанию | 'level0_object_name' | NULL }
Имя указанного типа объекта уровня 0. level0_object_name — sysname с значением NULL по умолчанию. Допустимыми входными значениями являются значение по умолчанию, NULL или имя объекта.
{ по умолчанию | 'level1_object_type' | NULL }
Тип объекта уровня 1. level1_object_type — varchar(128) с значением NULL по умолчанию.
Допустимые входные значения:
- AGGREGATE
- ПО УМОЛЧАНИЮ
- FUNCTION
- ИМЯ ЛОГИЧЕСКОГО ФАЙЛА
- PROCEDURE
- ОЧЕРЕДЬ
- ПРАВИЛО
- SYNONYM
- TABLE
- ТИП
- ВИД
- XML SCHEMA COLLECTION
- NULL
Примечание.
Значение по умолчанию сопоставлено значению NULL, и значение «default» сопоставлено типу объектов DEFAULT.
{default | 'level1_object_name' |NULL }
Имя указанного типа объекта уровня 1. level1_object_name — sysname с значением NULL по умолчанию. Допустимыми входными значениями являются значение по умолчанию, NULL или имя объекта.
{ по умолчанию | 'level2_object_type' |NULL }
Тип объекта уровня 2. level2_object_type — varchar(128) с значением NULL по умолчанию.
Допустимые входные значения:
- ПО УМОЛЧАНИЮ
- по умолчанию (сопоставляется с NULL)
- NULL. Допустимые входные данные для level2_object_type :
- СТОЛБЕЦ
- ОГРАНИЧЕНИЯ
- EVENT NOTIFICATION
- ИНДЕКС
- ПАРАМЕТР
- ТРИГГЕР
- NULL
{ по умолчанию | 'level2_object_name' |NULL }
Имя указанного типа объекта уровня 2. level2_object_name — sysname с значением NULL по умолчанию. Допустимыми входными значениями являются значение по умолчанию, NULL или имя объекта.
Возвращаемые таблицы
Это формат таблиц, возвращаемых функцией fn_listextendedproperty.
Имя столбца | Тип данных |
---|---|
objtype | sysname |
objname | sysname |
name | sysname |
значение | sql_variant |
Возвращение пустой таблицы означает отсутствие у объекта расширенных свойств или отсутствие у пользователя разрешений на просмотр этих свойств. При возвращении расширенных свойств самой базы данных столбцы objtype и objname принимают значения NULL.
Замечания
Если значение для property_name равно NULL или по умолчанию, fn_listextendedproperty возвращает все свойства для указанного объекта.
Если указан тип объекта, а значение, соответствующее имени объекта, равно NULL или значению по умолчанию, функция fn_listextendedproperty возвращает все расширенные свойства всех объектов заданного типа.
Объекты различаются по уровню: нулевой уровень является наивысшим, а второй — низшим. Если для объекта низкого уровня (1 или 2) указаны тип и имя, то для родительского объекта значения типа и имени не могут иметь значение NULL или значение по умолчанию. В противном случае функция возвращает пустой результирующий набор.
objname исправлен как Latin1_General_CI_AI. Однако это можно обойти, переопределив параметры сортировки в сравнении.
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';
Разрешения
Разрешения на просмотр расширенных свойств объектов зависят от типов объектов.
Примеры
А. Отображение расширенных свойств базы данных
В следующем примере выводится полный набор расширенных свойств объекта базы данных.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty(default, default, default, default, default, default, default);
GO
Результирующий набор:
objtype objname name value
--------- --------- ----------- ----------------------------
NULL NULL MS_Description AdventureWorks2008 Sample OLTP Database
(1 row(s) affected)
B. Отображение расширенных свойств для всех столбцов таблицы
В следующем примере перечислены расширенные свойства столбцов в ScrapReason
таблице. Она хранится в схеме Production
.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Production', 'table', 'ScrapReason', 'column', default);
GO
Результирующий набор:
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. Отображение расширенных свойств для всех таблиц схемы
В следующем примере перечислены расширенные свойства для всех таблиц, содержащихся в схеме Sales
.
USE AdventureWorks2022;
GO
SELECT objtype, objname, name, value
FROM fn_listextendedproperty (NULL, 'schema', 'Sales', 'table', default, NULL, NULL);
GO
См. также
sp_addextendedproperty (Transact-SQL)
sp_dropextendedproperty (Transact-SQL)
sp_updateextendedproperty (Transact-SQL)
sys.extended_properties (Transact-SQL)