Функция динамического управления sys.dm_sql_referenced_entities (Transact-SQL)sys.dm_sql_referenced_entities (Transact-SQL)

ОБЛАСТЬ ПРИМЕНЕНИЯ: даSQL Server даБаза данных SQL Azure нетAzure Synapse Analytics (хранилище данных SQL) нетParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Возвращает по одной строке для каждой пользовательской сущности, на который ссылается имени определение указанной ссылающейся сущности в SQL ServerSQL Server.Returns one row for each user-defined entity that is referenced by name in the definition of the specified referencing entity in SQL ServerSQL Server. Зависимость между двумя сущностями создается в том случае, когда некоторой пользовательской сущности, называемой упоминаемая сущность, отображается именем в материализованном выражении SQL из другой пользовательской сущности, называемой ссылающейся сущности .A dependency between two entities is created when one user-defined entity, called the referenced entity, appears by name in a persisted SQL expression of another user-defined entity, called the referencing entity. Например, если в качестве ссылающейся сущности выступает хранимая процедура, то данная функция выводит список всех определяемых пользователем сущностей, упоминаемых в данной хранимой процедуре. К упоминаемым определяемым пользователем сущностям относятся: таблицы, представления, определяемые пользователем типы (UDT), а также другие хранимые процедуры.For example, if a stored procedure is the specified referencing entity, this function returns all user-defined entities that are referenced in the stored procedure such as tables, views, user-defined types (UDTs), or other stored procedures.

Данная функция динамического управления может быть использована для отображения списка сущностей, упоминаемых заданной ссылающейся сущностью и имеющих следующие типы:You can use this dynamic management function to report on the following types of entities referenced by the specified referencing entity:

  • сущности, привязанные к схеме;Schema-bound entities

  • несвязанные сущности;Non-schema-bound entities

  • межбазовые и межсерверные сущности;Cross-database and cross-server entities

  • зависимости уровня столбца, как связанные, так и не связанные со схемами;Column-level dependencies on schema-bound and non-schema-bound entities

  • определяемые пользователем типы (псевдонимы и типы CLR);User-defined types (alias and CLR UDT)

  • коллекции XML-схемXML schema collections

  • функции секционированияPartition functions

СинтаксисSyntax

sys.dm_sql_referenced_entities (  
    ' [ schema_name. ] referencing_entity_name ' ,
    ' <referencing_class> ' )  
  
<referencing_class> ::=  
{  
    OBJECT  
  | DATABASE_DDL_TRIGGER  
  | SERVER_DDL_TRIGGER  
}  

АргументыArguments

[ schema_name.[ schema_name. ] referencing_entity_name] referencing_entity_name
Имя ссылающейся сущности.Is the name of the referencing entity. schema_name является обязательным, если ссылающийся класс — OBJECT.schema_name is required when the referencing class is OBJECT.

schema_name.referencing_entity_namenvarchar(517) .schema_name.referencing_entity_name is nvarchar(517).

<referencing_class> ::= { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER }<referencing_class> ::= { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER }
Класс заданной ссылающейся сущности.Is the class of the specified referencing entity. В одной инструкции может быть указан только один класс.Only one class can be specified per statement.

< referencing_class >nvarchar(60) .<referencing_class> is nvarchar(60).

Возвращаемая таблицаTable Returned

Имя столбцаColumn name Тип данныхData type ОписаниеDescription
referencing_minor_idreferencing_minor_id intint Идентификатор столбца, если ссылающаяся сущность является столбцом; в противном случае — 0.Column ID when the referencing entity is a column; otherwise 0. Не допускает значение NULL.Is not nullable.
referenced_server_namereferenced_server_name sysnamesysname Имя сервера упоминаемой сущности.Name of the server of the referenced entity.

Этот столбец заполняется для межсерверных зависимостей, которые создаются путем задания допустимого четырехкомпонентного имени.This column is populated for cross-server dependencies that are made by specifying a valid four-part name. Сведения о многокомпонентных именах см. в разделе синтаксические обозначения в Transact-SQL (Transact-SQL).For information about multipart names, see Transact-SQL Syntax Conventions (Transact-SQL).

Имеет значение NULL для не привязанных к схеме зависимостей, в которых сущность упоминается без указания четырехкомпонентного имени.NULL for non-schema-bound dependencies for which the entity was referenced without specifying a four-part name.

Имеет значение NULL для привязанных к схеме сущностей, поскольку они должны находиться в той же базе данных и поэтому может быть определен только с помощью двухкомпонентного (схема.объект) имя.NULL for schema-bound entities because they must be in the same database and therefore can only be defined using a two-part (schema.object) name.
referenced_database_namereferenced_database_name sysnamesysname Имя базы данных упоминаемой сущности.Name of the database of the referenced entity.

Этот столбец заполняется для межбазовых и межсерверных ссылок, которые задаются путем указания допустимого трехкомпонентного или четырехкомпонентного имени.This column is populated for cross-database or cross-server references that are made by specifying a valid three-part or four-part name.

Имеет значение NULL для не привязанных к схеме ссылок, задаваемых с помощью однокомпонентного или двухкомпонентного имени.NULL for non-schema-bound references when specified using a one-part or two-part name.

Имеет значение NULL для привязанных к схеме сущностей, поскольку они должны находиться в той же базе данных и поэтому может быть определен только с помощью двухкомпонентного (схема.объект) имя.NULL for schema-bound entities because they must be in the same database and therefore can only be defined using a two-part (schema.object) name.
referenced_schema_namereferenced_schema_name sysnamesysname Схема, которой принадлежит упоминаемая сущность.Schema in which the referenced entity belongs.

Имеет значение NULL для не привязанных к схеме ссылок, в которых сущность упоминается без указания имени схемы.NULL for non-schema-bound references in which the entity was referenced without specifying the schema name.

Никогда не принимает значение NULL для привязанных к схеме ссылок.Never NULL for schema-bound references.
referenced_entity_namereferenced_entity_name sysnamesysname Имя упоминаемой сущности.Name of the referenced entity. Не допускает значение NULL.Is not nullable.
referenced_minor_namereferenced_minor_name sysnamesysname Имя столбца, если упоминаемая сущность является столбцом. В противном случае — значение NULL.Column name when the referenced entity is a column; otherwise NULL. Например, параметр referenced_minor_name будет иметь значение NULL в строке, которая содержит саму упоминаемую сущность.For example, referenced_minor_name is NULL in the row that lists the referenced entity itself.

Упоминаемая сущность представляет собой столбец, если в ссылающейся сущности столбец определяется по имени или если в инструкции SELECT * используется родительская сущность.A referenced entity is a column when a column is identified by name in the referencing entity, or when the parent entity is used in a SELECT * statement.
referenced_idreferenced_id intint Идентификатор упоминаемой сущности.ID of the referenced entity. Если значение параметра referenced_minor_id отлично от 0, то величина referenced_id представляет сущность, определяющую столбец.When referenced_minor_id is not 0, referenced_id is the entity in which the column is defined.

Для межсерверных ссылок всегда принимает значение NULL.Always NULL for cross-server references.

Принимает значение NULL для межбазовых ссылок в тех случаях, когда не удается определить идентификатор базы данных вне сети или неограниченности сущности.NULL for cross-database references when the ID cannot be determined because the database is offline or the entity cannot be bound.

Имеет значение NULL для ссылок в пределах базы данных, когда не удается определить идентификатор.NULL for references within the database if the ID cannot be determined. Для не привязанных к схеме ссылок идентификатор не удается разрешить, если упоминаемая сущность не существует в базе данных или при разрешении имен зависит от вызывающего объекта.For non-schema-bound references, the ID cannot be resolved when the referenced entity does not exist in the database or when the name resolution is caller dependent. В последнем случае is_caller_dependent имеет значение 1.In the latter case, is_caller_dependent is set to 1.

Никогда не принимает значение NULL для привязанных к схеме ссылок.Never NULL for schema-bound references.
referenced_minor_idreferenced_minor_id intint Идентификатор столбца, если упоминаемая сущность является столбцом. В противном случае — 0.Column ID when the referenced entity is a column; otherwise, 0. Например, параметр referenced_minor_id будет иметь значение 0 в строке, которая содержит саму упоминаемую сущность.For example, referenced_minor_is is 0 in the row that lists the referenced entity itself.

При наличии не привязанных к схеме ссылок список зависимостей уровня столбцов может быть выведен только в случае ограниченности всех упоминаемых сущностей.For non-schema-bound references, column dependencies are reported only when all referenced entities can be bound. Если какая-либо из упоминаемых сущностей не может быть привязана, в списке не отображается ни одной зависимости уровня столбца, а параметру referenced_minor_id присваивается значение 0.If any referenced entity cannot be bound, no column-level dependencies are reported and referenced_minor_id is 0. См. пример Г.See Example D.
referenced_classreferenced_class tinyinttinyint Класс упоминаемой сущности.Class of the referenced entity.

1 = Объект или столбец1 = Object or column

6 = Тип6 = Type

10 = коллекция схем XML10 = XML schema collection

21 = функция секционирования21 = Partition function
referenced_class_descreferenced_class_desc nvarchar(60)nvarchar(60) Описание класса упоминаемой сущности.Description of class of referenced entity.

OBJECT_OR_COLUMNOBJECT_OR_COLUMN

TYPETYPE

XML_SCHEMA_COLLECTIONXML_SCHEMA_COLLECTION

PARTITION_FUNCTIONPARTITION_FUNCTION
is_caller_dependentis_caller_dependent bitbit Отображает привязку к схеме для упоминаемой сущности, полученную во время выполнения (так как идентификатор сущности зависит от схемы вызывающего объекта).Indicates schema binding for the referenced entity occurs at run time; therefore, resolution of the entity ID depends on the schema of the caller. Данная ситуация возможна только для хранимой процедуры, расширенной хранимой процедуры или определяемой пользователем функции, выполняемых в инструкции EXECUTE.This occurs when the referenced entity is a stored procedure, extended stored procedure, or user-defined function called within an EXECUTE statement.

1 = упоминаемая сущность зависит от вызывающего объекта и определяется во время выполнения.1 = The referenced entity is caller dependent and is resolved at run time. В этом случае параметр referenced_id принимает значение NULL.In this case, referenced_id is NULL.

0 = идентификатор упоминаемой сущности не зависит от вызывающего объекта.0 = The referenced entity ID is not caller dependent. Всегда имеет значение 0 для привязанных к схеме ссылок, а также для межбазовых и межсерверных ссылок, которые явно указывают имя схемы.Always 0 for schema-bound references and for cross-database and cross-server references that explicitly specify a schema name. Например, ссылка на сущность в формате EXEC MyDatabase.MySchema.MyProc не зависит от вызывающего объекта.For example, a reference to an entity in the format EXEC MyDatabase.MySchema.MyProc is not caller dependent. При этом ссылка в формате EXEC MyDatabase..MyProc зависит от вызывающего объекта.However, a reference in the format EXEC MyDatabase..MyProc is caller dependent.
is_ambiguousis_ambiguous bitbit Указывает, является неоднозначным его разрешается во время выполнения определяемой пользователем функции, определяемого пользователем типа (UDT) или ссылке xquery на столбец типа xml.Indicates the reference is ambiguous and can resolve at run time to a user-defined function, a user-defined type (UDT), or an xquery reference to a column of type xml. Например, предположим, что инструкция SELECT Sales.GetOrder() FROM Sales.MySales определяется в хранимой процедуре.For example, assume the statement SELECT Sales.GetOrder() FROM Sales.MySales is defined in a stored procedure. До выполнения хранимой процедуры неизвестно, является ли Sales.GetOrder() определяемой пользователем функцией в схеме Sales или столбцом Sales определяемого пользователем типа с методом GetOrder().Until the stored procedure is executed, it is not known whether Sales.GetOrder() is a user-defined function in the Sales schema or column named Sales of type UDT with a method named GetOrder().

1 = ссылка на определяемую пользователем функцию или на метод определяемого пользователем типа (UDT) столбца неоднозначна.1 = Reference to a user-defined function or column user-defined type (UDT) method is ambiguous.

0 = ссылка определена однозначно, либо сущность при вызове функции может быть привязана.0 = Reference is unambiguous or the entity can be successfully bound when the function is called.

Для привязанных к схеме ссылок всегда принимает значение 0.Always 0 for schema-bound references.
is_selectedis_selected bitbit 1 = объект или столбец выбран.1 = The object or column is selected.
is_updatedis_updated bitbit 1 = объект или столбец изменен.1 = The object or column is modified.
is_select_allis_select_all bitbit 1 = объект используется в предложении SELECT* (только на уровне объектов).1 = The object is used in a SELECT * clause (object-level only).
is_all_columns_foundis_all_columns_found bitbit 1 = все зависимости столбца для объекта удалось обнаружить.1 = All column dependencies for the object could be found.

0 = зависимости столбца для объекта не удалось обнаружить.0 = Column dependencies for the object could not be found.
is_insert_allis_insert_all bitbit 1 = объект используется в инструкции INSERT без списка столбцов (только уровень объектов).1 = The object is used in an INSERT statement without a column list (object-level only).

Этот столбец был добавлен в SQL Server 2016.This column was added in SQL Server 2016.
is_incompleteis_incomplete bitbit 1 = объект или столбец имеет ошибку привязки и является неполной.1 = The object or column has a binding error and is incomplete.

Этот столбец был добавлен в SQL Server 2016 с пакетом обновления 2.This column was added in SQL Server 2016 SP2.
     

ИсключенияExceptions

Возвращает пустой результирующий набор, если выполняется любое из следующих условий.Returns an empty result set under any of the following conditions:

  • Указан системный объект.A system object is specified.

  • Указанная сущность не существует в текущей базе данных.The specified entity does not exist in the current database.

  • Указанная сущность не ссылается ни на какие сущности.The specified entity does not reference any entities.

  • Передан недопустимый параметр.An invalid parameter is passed.

Выдает ошибку, если заданная ссылающаяся сущность является пронумерованной хранимой процедурой.Returns an error when the specified referencing entity is a numbered stored procedure.

Возвращает ошибку 2020, когда не удается разрешить зависимости столбца.Returns error 2020 when column dependencies cannot be resolved. Эта ошибка не препятствует возврату запросом зависимостей на уровне объектов.This error does not prevent the query from returning object-level dependencies.

ПримечанияRemarks

Данная функция может выполняться в контексте любой базы данных и осуществляет отображение списка сущностей, ссылающихся на триггер DDL уровня сервера.This function can be executed in the context of the any database to return the entities that reference a server-level DDL trigger.

В следующей таблице перечислены типы сущностей, для которых созданы и обновляются данные о зависимостях.The following table lists the types of entities for which dependency information is created and maintained. Данные о зависимостях не создаются и не обновляются для правил, значений по умолчанию, временных таблиц, временных хранимых процедур и системных объектов.Dependency information is not created or maintained for rules, defaults, temporary tables, temporary stored procedures, or system objects.

Тип сущностиEntity type Ссылающаяся сущностьReferencing entity Упоминаемая сущностьReferenced entity
ТаблицаTable Да*Yes* ДаYes
ПредставлениеView ДаYes ДаYes
Хранимая процедура Transact-SQLTransact-SQL**Transact-SQLTransact-SQL stored procedure** ДаYes ДаYes
Хранимая процедура CLRCLR stored procedure НетNo ДаYes
Определяемая пользователем функция Transact-SQLTransact-SQLTransact-SQLTransact-SQL user-defined function ДаYes ДаYes
Определяемая пользователем функция CLRCLR user-defined function НетNo ДаYes
Триггер CLR (DML и DDL)CLR trigger (DML and DDL) НетNo НетNo
Триггер DML Transact-SQLTransact-SQLTransact-SQLTransact-SQL DML trigger ДаYes НетNo
Триггер DDL Transact-SQLTransact-SQL уровня базы данныхTransact-SQLTransact-SQL database-level DDL trigger ДаYes НетNo
Триггер DDL Transact-SQLTransact-SQL уровня сервераTransact-SQLTransact-SQL server-level DDL trigger ДаYes НетNo
Расширенные хранимые процедурыExtended stored procedures НетNo ДаYes
ОчередьQueue НетNo ДаYes
СинонимSynonym НетNo ДаYes
Тип (псевдоним и определяемый пользователем тип данных CLR)Type (alias and CLR user-defined type) НетNo ДаYes
Коллекция схем XMLXML schema collection НетNo ДаYes
Функция секционированияPartition function НетNo ДаYes
     

* Таблица отслеживается как ссылающаяся сущность, только в том случае, если оно ссылается на Transact-SQLTransact-SQL модуля, определяемый пользователем тип или коллекцию схем XML в определении вычисляемого столбца, ограничения CHECK или ограничении DEFAULT.* A table is tracked as a referencing entity only when it references a Transact-SQLTransact-SQL module, user-defined type, or XML schema collection in the definition of a computed column, CHECK constraint, or DEFAULT constraint.

** Пронумерованные хранимые процедуры с целочисленным значением больше 1 не отслеживаются в качестве ссылающихся или упоминаемых сущностей.** Numbered stored procedures with an integer value greater than 1 are not tracked as either a referencing or referenced entity.

РазрешенияPermissions

Требует разрешения SELECT для функции sys.dm_sql_referenced_entities и разрешения VIEW DEFINITION для ссылающейся сущности.Requires SELECT permission on sys.dm_sql_referenced_entities and VIEW DEFINITION permission on the referencing entity. Разрешение SELECT по умолчанию предоставляется роли public.By default, SELECT permission is granted to public. Требует разрешения VIEW DEFINITION для базы данных, либо, если ссылающаяся сущность является триггером DDL уровня базы данных, разрешения ALTER DATABASE DDL TRIGGER.Requires VIEW DEFINITION permission on the database or ALTER DATABASE DDL TRIGGER permission on the database when the referencing entity is a database-level DDL trigger. Если указанный модуль является триггером DDL уровня сервера, то требуется разрешение VIEW ANY DEFINITION на уровне сервера.Requires VIEW ANY DEFINITION permission on the server when the referencing entity is a server-level DDL trigger.

ПримерыExamples

A.A. Возвращает сущности, на которые ссылается триггер DDL уровня базы данныхReturn entities that are referenced by a database-level DDL trigger

В ходе выполнения следующего примера производится отображение списка сущностей (таблиц и столбцов), упоминаемых триггером DDL уровня базы данных ddlDatabaseTriggerLog.The following example returns the entities (tables and columns) that are referenced by the database-level DDL trigger ddlDatabaseTriggerLog.

USE AdventureWorks2012;  
GO  
SELECT
        referenced_schema_name,
        referenced_entity_name,
        referenced_minor_name,
        referenced_minor_id,
        referenced_class_desc
    FROM
        sys.dm_sql_referenced_entities (
            'ddlDatabaseTriggerLog',
            'DATABASE_DDL_TRIGGER')
;
GO  

Б.B. Возвращает сущности, на которые ссылается объектReturn entities that are referenced by an object

В ходе выполнения следующего примера производится отображение списка сущностей, упоминаемых в определяемой пользователем функции dbo.ufnGetContactInformation.The following example returns the entities that are referenced by the user-defined function dbo.ufnGetContactInformation.

USE AdventureWorks2012;  
GO  
SELECT
        referenced_schema_name,
        referenced_entity_name,
        referenced_minor_name,
        referenced_minor_id,
        referenced_class_desc,
        is_caller_dependent,
        is_ambiguous
    FROM
        sys.dm_sql_referenced_entities (
            'dbo.ufnGetContactInformation',
            'OBJECT')
;
GO  

В.C. Возвращает зависимости столбцовReturn column dependencies

В ходе выполнения представленного ниже примера осуществляется создание таблицы Table1, в которой содержится вычисляемый столбец c, определяемый как сумма столбцов a и b.The following example creates the table Table1 with the computed column c defined as the sum of columns a and b. Затем производится вызов представления sys.dm_sql_referenced_entities.The sys.dm_sql_referenced_entities view is then called. Представление содержит две строки, по одной для каждого столбца, определенного в вычисляемом столбце.The view returns two rows, one for each column defined in the computed column.

CREATE TABLE dbo.Table1 (a int, b int, c AS a + b);  
GO  
SELECT
        referenced_schema_name AS schema_name,  
        referenced_entity_name AS table_name,  
        referenced_minor_name  AS referenced_column,  
        COALESCE(
            COL_NAME(OBJECT_ID(N'dbo.Table1'),
            referencing_minor_id),
            'N/A') AS referencing_column_name  
    FROM
        sys.dm_sql_referenced_entities ('dbo.Table1', 'OBJECT')
;
GO

-- Remove the table.  
DROP TABLE dbo.Table1;  
GO  

Ниже приводится результирующий набор.Here is the result set.

schema_name table_name referenced_column referencing_column  
----------- ---------- ----------------- ------------------  
dbo         Table1     a                 c  
dbo         Table1     b                 c  

Г.D. Возврат списка зависимостей столбцов, не привязанных к схемеReturning non-schema-bound column dependencies

В ходе выполнения представленного ниже примера выполняется удаление таблицы Table1, а также создание таблицы Table2 и хранимой процедуры Proc1.The following example drops Table1 and creates Table2 and stored procedure Proc1. Процедура ссылается на таблицу Table2 и на несуществующую таблицу Table1.The procedure references Table2 and the nonexistent table Table1. Представление sys.dm_sql_referenced_entities запускается с помощью хранимой процедуры, которая указана в качестве ссылающейся сущности.The view sys.dm_sql_referenced_entities is run with the stored procedure specified as the referencing entity. В результирующем наборе показана одна строка для таблицы Table1 и 3 строки для таблицы Table2.The result set shows one row for Table1 and 3 rows for Table2. Поскольку таблица Table1 не существует, то не удается разрешить зависимости столбца и возвращается ошибка 2020.Because Table1 does not exist, the column dependencies cannot be resolved and error 2020 is returned. Столбец is_all_columns_found возвращает 0 для таблицы Table1, указывая, что существуют столбцы, которые не удалось обнаружить.The is_all_columns_found column returns 0 for Table1 indicating that there were columns that could not be discovered.

DROP TABLE IF EXISTS dbo.Table1;
GO  
CREATE TABLE dbo.Table2 (c1 int, c2 int);  
GO  
CREATE PROCEDURE dbo.Proc1 AS  
    SELECT a, b, c FROM Table1;  
    SELECT c1, c2 FROM Table2;  
GO  
SELECT
        referenced_id,
        referenced_entity_name AS table_name,
        referenced_minor_name  AS referenced_column_name,
        is_all_columns_found
    FROM
        sys.dm_sql_referenced_entities ('dbo.Proc1', 'OBJECT');
GO  

Ниже приводится результирующий набор.Here is the result set.

referenced_id table_name   referenced_column_name  is_all_columns_found  
------------- ------------ ----------------------- --------------------  
935674381     Table2       NULL                    1  
935674381     Table2       C1                      1  
935674381     Table2       C2                      1  
NULL          Table1       NULL                    0  

Msg 2020, Level 16, State 1, Line 1
The dependencies reported for entity "dbo.Proc1" might not include
 references to all columns. This is either because the entity
 references an object that does not exist or because of an error
 in one or more statements in the entity.  Before rerunning the
 query, ensure that there are no errors in the entity and that
 all objects referenced by the entity exist.

Д.E. Отображение параметров обслуживания динамических зависимостейDemonstrating dynamic dependency maintenance

Этот пример E предполагается, что примере D был выполнен.This Example E assumes that Example D has been run. Пример Д показывает, что динамических зависимостей.Example E shows that dependencies are maintained dynamically. В примере выполняются следующие действия:The example does the following things:

  1. Повторно создает Table1, которая была удалена в примере г.Re-creates Table1, which was dropped in Example D.
  2. Затем запустите sys.dm_sql_referenced_entities снова выполняется с помощью хранимой процедуры, указанной в качестве ссылающейся сущности.Run Then sys.dm_sql_referenced_entities is run again with the stored procedure specified as the referencing entity.

Результирующий набор показывает, что возвращаются таблицы и их соответствующие столбцы, определенные в хранимой процедуре.The result set shows that both tables, and their respective columns defined in the stored procedure, are returned. Кроме того, столбец is_all_columns_found возвращает значение 1 для всех объектов и столбцов.In addition, the is_all_columns_found column returns a 1 for all objects and columns.

CREATE TABLE Table1 (a int, b int, c AS a + b);  
GO   
SELECT
        referenced_id,
        referenced_entity_name AS table_name,
        referenced_minor_name  AS column_name,
        is_all_columns_found
    FROM
        sys.dm_sql_referenced_entities ('dbo.Proc1', 'OBJECT');
GO  
DROP TABLE Table1, Table2;  
DROP PROC Proc1;  
GO  

Ниже приводится результирующий набор.Here is the result set.

referenced_id table_name   referenced_column_name  is_all_columns_found  
------------- ------------ ----------------------- --------------------  
935674381     Table2       NULL                    1 
935674381     Table2       c1                      1 
935674381     Table2       c2                      1 
967674495     Table1       NULL                    1 
967674495     Table1       a                       1  
967674495     Table1       b                       1  
967674495     Table1       c                       1  

Е.F. Использование возвращения объекта или столбцаReturning object or column usage

В следующем примере возвращаются зависимости объекта и столбца хранимой процедуры HumanResources.uspUpdateEmployeePersonalInfo.The following example returns the objects and column dependencies of the stored procedure HumanResources.uspUpdateEmployeePersonalInfo. Эта процедура обновляет столбцы NationalIDNumber, BirthDate,``MaritalStatus, и Gender из Employee таблицы на основе указанного BusinessEntityID значение.This procedure updates the columns NationalIDNumber, BirthDate,``MaritalStatus, and Gender of the Employee table based on a specified BusinessEntityID value. Другой хранимой процедуры, upsLogError определяется в блок TRY... CATCH для регистрировать ошибки выполнения.Another stored procedure, upsLogError is defined in a TRY...CATCH block to capture any execution errors. Столбцы is_selected, is_updated и is_select_all возвращают сведения о способе использования этих объектов и столбцов в рамках ссылающегося объекта.The is_selected, is_updated, and is_select_all columns return information about how these objects and columns are used within the referencing object. Измененная таблица и столбцы в обновленном столбце помечаются единицей.The table and columns that are modified are indicated by a 1 in the is_updated column. Единственный выбранный столбец — BusinessEntityID, а хранимая процедура uspLogError не выбрана и не изменена.The BusinessEntityID column is only selected and the stored procedure uspLogError is neither selected nor modified.

USE AdventureWorks2012;
GO
SELECT
        referenced_entity_name AS table_name,
        referenced_minor_name  AS column_name,
        is_selected,  is_updated,  is_select_all
    FROM
        sys.dm_sql_referenced_entities(
            'HumanResources.uspUpdateEmployeePersonalInfo',
            'OBJECT')
;

Ниже приводится результирующий набор.Here is the result set.

table_name    column_name         is_selected is_updated is_select_all  
------------- ------------------- ----------- ---------- -------------  
uspLogError   NULL                0           0          0  
Employee      NULL                0           1          0  
Employee      BusinessEntityID    1           0          0  
Employee      NationalIDNumber    0           1          0  
Employee      BirthDate           0           1          0  
Employee      MaritalStatus       0           1          0  
Employee      Gender              0           1          0

См. такжеSee Also

sys.dm_sql_referencing_entities (Transact-SQL) sys.dm_sql_referencing_entities (Transact-SQL)
sys.sql_expression_dependencies (Transact-SQL)sys.sql_expression_dependencies (Transact-SQL)