sys.dm_db_uncontained_entities (Transact-SQL)
Показывает все неавтономные объекты, которые используются в базе данных.Неавтономные объекты пересекают границу базы данных в автономной базе данных.Представление доступно как из автономной базы данных, так и из неавтономной базы данных.Если представление sys.dm_db_uncontained_entities пусто, база данных не использует неавтономные сущности.
Если модуль пересекает границу базы данных несколько раз, то в отчете указывается только первое пересечение границы.
Применимо к: SQL Server (начиная с SQL Server 2012 до текущей версии). |
Имя столбца |
Тип |
Описание |
class |
int |
1 = объект или столбец (включая модули, XP, представления, синонимы и таблицы). 4 = Участник базы данных 5 = Сборка 6 = Тип 7 = Индекс (полнотекстовый индекс) 12 = Триггер DDL базы данных 19 = Маршрут 30 = Спецификация аудита |
class_desc |
nvarchar(120) |
Описание класса сущности.Для сопоставления с классом используется одно из следующего.
|
major_id |
int |
Идентификатор сущности. Если class равно 1, то object_id Если class равно 4, то sys.database_principals.principal_id. Если class равно 5, то sys.assemblies.assembly_id. Если class равно 6, то sys.types.user_type_id. Если class равно 7, то sys.indexes.index_id. Если class равно 12, то sys.triggers.object_id. Если class равно 19, то sys.routes.route_id. Если class равно 30, то sys.database_audit_specifications.databse_specification_id. |
statement_line_number |
int |
Если класс является модулем, возвращает номер строки, в которой используется неавтономная инструкция.В противном случае — значение NULL. |
statement_ offset_begin |
int |
Если класс является модулем, он указывает (в байтах, начиная с 0) положение, откуда начинается неавтономная инструкция.В противном случае возвращается значение null. |
statement_ offset_end |
int |
Если класс является модулем, он указывает (в байтах, начиная с 0) положение, где заканчивается неавтономная инструкция.Значение -1 обозначает конец модуля.В противном случае возвращается значение null. |
statement_type |
nvarchar(512) |
Тип инструкции. |
feature_ name |
nvarchar(256) |
Возвращает внешнее имя объекта. |
feature_type_name |
nvarchar(256) |
Возвращает тип функции. |
Заметки
sys.dm_db_uncontained_entities показывает сущности, которые могут пересекать границы базы данных.Будут возвращены все сущности пользователей, которые могут использовать объекты за пределами базы данных.
В отчете указываются следующие типы функций.
Неизвестный режим включения (динамическое SQL или отложенное разрешение имени)
Команда DBCC
Системная хранимая процедура
Системная скалярная функция
Системная функция, возвращающая табличное значение
Встроенная системная функция
Безопасность
Разрешения
sys.dm_db_uncontained_entities возвращает только объекты, для которых у пользователя имеются определенные типы разрешения.Чтобы полностью оценить включение базы данных эта функция должна использоваться привилегированным пользователем, таким как членом предопределенной роли сервера sysadmin или роли db_owner.
Примеры
В следующем примере создается процедура с именем P1, а затем отправляется запрос sys.dm_db_uncontained_entities.В отчете запроса указывается использование процедурой P1 представления sys.endpoints, находящегося за пределами базы данных.
CREATE DATABASE Test;
GO
USE Test;
GO
CREATE PROC P1
AS
SELECT * FROM sys.endpoints ;
GO
SELECT SO.name, UE.* FROM sys.dm_db_uncontained_entities AS UE
LEFT JOIN sys.objects AS SO
ON UE.major_id = SO.object_id;