sys.dm_sql_referenced_entities (Transact-SQL)sys.dm_sql_referenced_entities (Transact-SQL)

適用対象: ○SQL Server ○Azure SQL Database XAzure SQL Data Warehouse XParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

1 行で指定した参照元エンティティの定義で名前によって参照される各ユーザー定義エンティティを返します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. 1 つのユーザー定義エンティティが呼び出されたときに、2 つのエンティティ間の依存関係が作成された、エンティティを参照と呼ばれる、別のユーザー定義エンティティの保存されている 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 UDT)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 > :: = {オブジェクト |DATABASE_DDL_TRIGGER |SERVER_DDL_TRIGGER です。<referencing_class> ::= { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER }
指定された参照元エンティティのクラスです。Is the class of the specified referencing entity. クラスは 1 つのステートメントに 1 つだけ指定できます。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 参照元エンティティが列の場合は列 ID。それ以外の場合は 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.

有効な 4 部構成の名前を指定することによって作成されたサーバー間依存関係については、この列に値が格納されます。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).

4 部構成の名前を指定せずにエンティティが参照される非スキーマ バインド依存関係の場合は NULL。NULL for non-schema-bound dependencies for which the entity was referenced without specifying a four-part name.

のみ定義できます 2 つの部分を使用して、同じデータベースである必要がありますのでスキーマ バインド エンティティの場合は NULL (schema.object) の名前。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.

有効な 3 部構成または 4 部構成の名前を指定することによって作成された複数データベースまたは複数サーバーにまたがる参照については、この列に値が格納されます。This column is populated for cross-database or cross-server references that are made by specifying a valid three-part or four-part name.

1 部構成または 2 部構成の名前を使って指定された非スキーマ バインド参照の場合は NULL。NULL for non-schema-bound references when specified using a one-part or two-part name.

のみ定義できます 2 つの部分を使用して、同じデータベースである必要がありますのでスキーマ バインド エンティティの場合は NULL (schema.object) の名前。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。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.

複数データベースにまたがる参照で、データベースがオフラインか、エンティティをバインドできないために ID を判別できない場合は NULL。NULL for cross-database references when the ID cannot be determined because the database is offline or the entity cannot be bound.

データベース内の参照で ID を判別できない場合は、NULL。NULL for references within the database if the ID cannot be determined. 非スキーマ バインド参照では、データベース、または名前解決は、呼び出し元に依存する参照先のエンティティが存在しない場合、ID を解決できません。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 参照先エンティティが列の場合は列 ID。それ以外の場合は 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. バインドできない参照先エンティティが 1 つでも存在した場合、列レベルの依存関係は報告されず、referenced_minor_id は 0 になります。If any referenced entity cannot be bound, no column-level dependencies are reported and referenced_minor_id is 0. 例 D を参照してください。See Example D.
referenced_classreferenced_class tinyinttinyint 参照先エンティティのクラス。Class of the referenced entity.

1 = オブジェクトまたは列1 = Object or column

6 = 型6 = Type

10 = XML スキーマ コレクション10 = 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 参照先エンティティのスキーマ バインドが実行時に発生することを示します。したがって、エンティティ ID の解決方法は、呼び出し元のスキーマに依存します。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 = 参照先エンティティの ID は呼び出し元に依存しません。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 という名前のメソッドを持つ UDT 型の 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 SP2 で追加されました。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 ストアド プロシージャ**stored procedure** はいYes はいYes
CLR ストアド プロシージャ (CLR stored procedure)CLR stored procedure いいえNo はいYes
Transact-SQLTransact-SQL ユーザー定義関数user-defined function はいYes はいYes
CLR ユーザー定義関数CLR user-defined function いいえNo はいYes
CLR トリガー (DML および DDL)CLR trigger (DML and DDL) いいえNo いいえNo
Transact-SQLTransact-SQL DML トリガーDML trigger はいYes いいえNo
Transact-SQLTransact-SQL データベース レベルの DDL トリガーdatabase-level DDL trigger はいYes いいえNo
Transact-SQLTransact-SQL サーバー レベルの DDL トリガー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
XML スキーマ コレクションXML schema collection いいえNo はいYes
パーティション関数Partition function いいえNo はいYes
     

* テーブルは、参照する場合にのみ、参照元エンティティとして追跡をTransact-SQLTransact-SQLモジュール、ユーザー定義型、または計算列、CHECK 制約、または既定の制約の定義の XML スキーマ コレクションです。* 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

sys.dm_sql_referenced_entities に対する SELECT 権限および参照元エンティティに対する 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. 参照元エンティティがデータベース レベルの DDL トリガーである場合は、データベースに対する VIEW DEFINITION 権限またはデータベースに対する 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.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.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. このビューは、2 つの行 (計算列で定義された各列につき 1 行) を返します。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.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 に対する 1 行と Table2 に対する 3 行があります。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 列の Table1 に対する 0 は、検出できなかった列があることを示します。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.E. 依存関係の動的管理を行うDemonstrating dynamic dependency maintenance

この例 E では、例 D が実行されたことを前提としています。This Example E assumes that Example D has been run. 例 E では、依存関係が動的に保持されることを示します。Example E shows that dependencies are maintained dynamically. この例では、次のこと。The example does the following things:

  1. 再作成Table1例 D で削除しました。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.F. オブジェクトまたは列の使用状況を返すReturning object or column usage

次の例では、ストアド プロシージャ HumanResources.uspUpdateEmployeePersonalInfo のオブジェクトと列の依存関係を返します。The following example returns the objects and column dependencies of the stored procedure HumanResources.uspUpdateEmployeePersonalInfo. この手順は、列を更新NationalIDNumberBirthDate,``MaritalStatus、およびGenderEmployeeテーブルに基づいて、指定したBusinessEntityID値です。This procedure updates the columns NationalIDNumber, BirthDate,``MaritalStatus, and Gender of the Employee table based on a specified BusinessEntityID value. 別のストアド プロシージャ、upsLogErrorで定義しています.CATCH ブロックを実行エラーをキャプチャします。Another stored procedure, upsLogError is defined in a TRY...CATCH block to capture any execution errors. is_selectedis_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. 変更されているテーブルと列は、is_updated 列で 1 と示されます。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)