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

SE APLICA A: síSQL Server síAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Devuelve una fila para cada entidad definida por el usuario que se hace referencia por nombre en la definición de la entidad de referencia especificada en 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. Se crea una dependencia entre dos entidades cuando una entidad definida por el usuario, llamada la hace referencia a entidad, aparece por nombre en una expresión SQL persistente de otra entidad definida por el usuario, llamada la que hacen referencia a entidad .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. Por ejemplo, si un procedimiento almacenado es la entidad especificada de referencia, esta función devuelve todas las entidades definidas por el usuario a las que se hace referencia en el procedimiento almacenado, como tablas, vistas, tipos definidos por el usuario (UDT) u otros procedimientos almacenados.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.

Puede usar esta función de administración dinámica para notificar los siguientes tipos de entidades referenciadas por la entidad de referencia especificada:You can use this dynamic management function to report on the following types of entities referenced by the specified referencing entity:

  • Entidades enlazadas a esquemaSchema-bound entities

  • Entidades no enlazadas a esquemaNon-schema-bound entities

  • Entidades entre servidores y entre bases de datosCross-database and cross-server entities

  • Dependencias de nivel de columna en entidades enlazadas y no enlazadas a esquemaColumn-level dependencies on schema-bound and non-schema-bound entities

  • Tipos definidos por el usuario (alias y CLR UDT)User-defined types (alias and CLR UDT)

  • Colecciones de esquemas XMLXML schema collections

  • Funciones de particiónPartition functions

SintaxisSyntax

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

ArgumentosArguments

[ schema_name.[ schema_name. ] referencing_entity_name] referencing_entity_name
Es el nombre de la entidad que hace la referencia.Is the name of the referencing entity. schema_name es necesaria si la clase de referencia es OBJECT.schema_name is required when the referencing class is OBJECT.

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

< Clase_referencia > :: = {objeto | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER}<referencing_class> ::= { OBJECT | DATABASE_DDL_TRIGGER | SERVER_DDL_TRIGGER }
Es la clase de la entidad de referencia especificada.Is the class of the specified referencing entity. Solo se puede especificar una clase por instrucción.Only one class can be specified per statement.

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

Tabla devueltaTable Returned

Nombre de columnaColumn name Tipo de datosData type DescripciónDescription
referencing_minor_idreferencing_minor_id intint Identificador de la columna cuando la entidad de referencia es una columna; en caso contrario, es 0.Column ID when the referencing entity is a column; otherwise 0. No admite valores NULL.Is not nullable.
referenced_server_namereferenced_server_name sysnamesysname Nombre del servidor de la entidad a la que se hace referencia.Name of the server of the referenced entity.

Esta columna se rellena para las dependencias entre servidores especificadas con un nombre de cuatro partes válido.This column is populated for cross-server dependencies that are made by specifying a valid four-part name. Para obtener información sobre los nombres de varias partes, vea convenciones de sintaxis de Transact-SQL (Transact-SQL).For information about multipart names, see Transact-SQL Syntax Conventions (Transact-SQL).

NULL para las dependencias no enlazadas a esquema para las que se hizo referencia a la entidad sin especificar un nombre de cuatro partes.NULL for non-schema-bound dependencies for which the entity was referenced without specifying a four-part name.

NULL para las entidades enlazadas a esquema porque deben estar en la misma base de datos y, por tanto, solo se pueden definir mediante dos partes (esquema.objeto) nombre.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 Nombre de la base de datos de la entidad a la que se hace referencia.Name of the database of the referenced entity.

Esta columna se rellena para las referencias entre bases de datos o entre servidores especificadas con un nombre válido de tres o cuatro partes.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 para las referencias no enlazadas a esquema especificadas con un nombre de una o dos partes.NULL for non-schema-bound references when specified using a one-part or two-part name.

NULL para las entidades enlazadas a esquema porque deben estar en la misma base de datos y, por tanto, solo se pueden definir mediante dos partes (esquema.objeto) nombre.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 Esquema al que pertenece la entidad a la que se hace referencia.Schema in which the referenced entity belongs.

NULL para las referencias no enlazadas a esquema en las que se hacía referencia a la entidad sin especificar el nombre del esquema.NULL for non-schema-bound references in which the entity was referenced without specifying the schema name.

Nunca es NULL para las referencias enlazadas a un esquema.Never NULL for schema-bound references.
referenced_entity_namereferenced_entity_name sysnamesysname Nombre de la entidad a la que se hace referencia.Name of the referenced entity. No admite valores NULL.Is not nullable.
referenced_minor_namereferenced_minor_name sysnamesysname Nombre de la columna cuando la entidad a la que se hace referencia es una columna; en caso contrario, es NULL.Column name when the referenced entity is a column; otherwise NULL. Por ejemplo, referenced_minor_name es NULL en la fila que contiene la propia entidad a la que se hace referencia.For example, referenced_minor_name is NULL in the row that lists the referenced entity itself.

Una entidad a la que se hace referencia es una columna cuando una columna se identifica mediante un nombre en la entidad de referencia o cuando la entidad primaria se usa en una instrucción 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 Identificador de la entidad a la que se hace referencia.ID of the referenced entity. Cuando el valor de referenced_minor_id no es 0, referenced_id es la entidad en la que se define la columna.When referenced_minor_id is not 0, referenced_id is the entity in which the column is defined.

Siempre es NULL para las referencias entre servidores.Always NULL for cross-server references.

NULL para las referencias entre bases de datos cuando no se puede determinar el identificador porque la base de datos está sin conexión o no se puede enlazar la entidad.NULL for cross-database references when the ID cannot be determined because the database is offline or the entity cannot be bound.

NULL para las referencias dentro de la base de datos si no se puede determinar el identificador.NULL for references within the database if the ID cannot be determined. Para las referencias no enlazada a esquema, el Id. no se puede resolver la entidad que se hace referencia no existe en la base de datos o cuando la resolución de nombres es dependiente del autor de llamada.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. En este caso, is_caller_dependent se establece en 1.In the latter case, is_caller_dependent is set to 1.

Nunca es NULL para las referencias enlazadas a un esquema.Never NULL for schema-bound references.
referenced_minor_idreferenced_minor_id intint Identificador de la columna cuando la entidad a la que se hace referencia es una columna; en caso contrario, es 0.Column ID when the referenced entity is a column; otherwise, 0. Por ejemplo, referenced_minor_name es 0 en la fila que contiene la propia entidad a la que se hace referencia.For example, referenced_minor_is is 0 in the row that lists the referenced entity itself.

Para las referencias no enlazadas a esquema, se notifican las dependencias de las columnas únicamente cuando se pueden enlazar todas las entidades a las que se hace referencia.For non-schema-bound references, column dependencies are reported only when all referenced entities can be bound. Si no se pueden enlazar todas las entidades a las que se hace referencia, no se notifican las dependencias del nivel de columna y referenced_minor_id es 0.If any referenced entity cannot be bound, no column-level dependencies are reported and referenced_minor_id is 0. Vea el ejemplo D.See Example D.
referenced_classreferenced_class tinyinttinyint Clase de la entidad a la que se hace referencia.Class of the referenced entity.

1 = Objeto o columna1 = Object or column

6 = Tipo6 = Type

10 = Colección de esquemas XML10 = XML schema collection

21 = Función de partición21 = Partition function
referenced_class_descreferenced_class_desc nvarchar(60)nvarchar(60) Descripción de la clase de la entidad a la que se hace referencia.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 Indica que el enlace de esquema de la entidad a la que se hace referencia se realiza en tiempo de ejecución; por consiguiente, la resolución del identificador de la entidad depende del esquema del autor de la llamada.Indicates schema binding for the referenced entity occurs at run time; therefore, resolution of the entity ID depends on the schema of the caller. Esto ocurre cuando la entidad a la que se hace referencia es un procedimiento almacenado, un procedimiento almacenado extendido o una función definida por el usuario llamada en una instrucción EXECUTE.This occurs when the referenced entity is a stored procedure, extended stored procedure, or user-defined function called within an EXECUTE statement.

1 = La entidad a la que se hace referencia es dependiente del autor de la llamada y se resuelve en tiempo de ejecución.1 = The referenced entity is caller dependent and is resolved at run time. En este caso, referenced_id es NULL.In this case, referenced_id is NULL.

0 = El identificador de la entidad a la que se hace referencia no es dependiente del autor de la llamada.0 = The referenced entity ID is not caller dependent. Es siempre 0 para las referencias enlazadas a esquema y para las referencias entre bases de datos o entre servidores que especifican explícitamente un nombre de esquema.Always 0 for schema-bound references and for cross-database and cross-server references that explicitly specify a schema name. Por ejemplo, una referencia a una entidad con el formato EXEC MyDatabase.MySchema.MyProc no es dependiente del autor de la llamada.For example, a reference to an entity in the format EXEC MyDatabase.MySchema.MyProc is not caller dependent. Sin embargo, una referencia con el formato EXEC MyDatabase..MyProc es dependiente del autor de la llamada.However, a reference in the format EXEC MyDatabase..MyProc is caller dependent.
is_ambiguousis_ambiguous bitbit Indica la referencia es ambigua y se puede resolver en tiempo de ejecución para una función definida por el usuario, un tipo definido por el usuario (UDT) o una referencia xquery a una columna de tipo 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. Por ejemplo, supongamos que la instrucción SELECT Sales.GetOrder() FROM Sales.MySales está definida en un procedimiento almacenado.For example, assume the statement SELECT Sales.GetOrder() FROM Sales.MySales is defined in a stored procedure. Hasta que no se ejecute el procedimiento almacenado, no se sabrá si Sales.GetOrder() es una función definida por el usuario en el esquema Sales o en la columna con nombre Sales de tipo UDT con un método denominado 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 = La referencia a una función definida por el usuario o el método de tipo definido por el usuario (UDT) de columna es ambiguo.1 = Reference to a user-defined function or column user-defined type (UDT) method is ambiguous.

0 = La referencia no es ambigua o la entidad puede enlazarse correctamente cuando se llama a la función.0 = Reference is unambiguous or the entity can be successfully bound when the function is called.

Siempre es 0 para las referencias enlazadas a esquema.Always 0 for schema-bound references.
is_selectedis_selected bitbit 1 = Se ha seleccionado el objeto o la columna.1 = The object or column is selected.
is_updatedis_updated bitbit 1 = Se ha modificado el objeto o la columna.1 = The object or column is modified.
is_select_allis_select_all bitbit 1= El objeto se usa en la cláusula SELECT * (solo en el nivel de objeto).1 = The object is used in a SELECT * clause (object-level only).
is_all_columns_foundis_all_columns_found bitbit 1 = Se pueden encontrar todas las dependencias de columna del objeto.1 = All column dependencies for the object could be found.

0 = No se pueden encontrar las dependencias de columna del objeto.0 = Column dependencies for the object could not be found.
is_insert_allis_insert_all bitbit 1 = el objeto se usa en una instrucción INSERT sin una lista de columnas (solo nivel de objeto).1 = The object is used in an INSERT statement without a column list (object-level only).

Esta columna se agregó en SQL Server 2016.This column was added in SQL Server 2016.
is_incompleteis_incomplete bitbit 1 = el objeto o columna tiene un error de enlace y está incompleta.1 = The object or column has a binding error and is incomplete.

Esta columna se agregó en SQL Server 2016 SP2.This column was added in SQL Server 2016 SP2.
     

ExcepcionesExceptions

Devuelve un conjunto de resultados vacío si se da alguna de las condiciones siguientes:Returns an empty result set under any of the following conditions:

  • Se especifica un objeto del sistema.A system object is specified.

  • La entidad especificada no existe en la base de datos actual.The specified entity does not exist in the current database.

  • La entidad especificada no hace referencia a ninguna entidad.The specified entity does not reference any entities.

  • Se pasó un parámetro no válido.An invalid parameter is passed.

Devuelve un error si la entidad especificada de referencia es un procedimiento almacenado numerado.Returns an error when the specified referencing entity is a numbered stored procedure.

Devuelve el error 2020 cuando no se pueden resolver las dependencias de columna.Returns error 2020 when column dependencies cannot be resolved. Este error no impide que la consulta devuelva dependencias de nivel de objeto.This error does not prevent the query from returning object-level dependencies.

ComentariosRemarks

Se puede ejecutar esta función en el contexto de cualquier base de datos para devolver las entidades que hacen referencia a un desencadenador DDL de servidor.This function can be executed in the context of the any database to return the entities that reference a server-level DDL trigger.

La tabla siguiente enumera los tipos de entidades para las que se crea y mantiene la información de dependencia.The following table lists the types of entities for which dependency information is created and maintained. La información de dependencia no se crea ni mantiene para reglas, valores predeterminados, tablas temporales, procedimientos almacenados temporales u objetos del sistema.Dependency information is not created or maintained for rules, defaults, temporary tables, temporary stored procedures, or system objects.

Tipo de entidadEntity type Entidad que hace la referenciaReferencing entity Entidad a la que se hace referenciaReferenced entity
TablaTable Sí*Yes* Yes
VerView Yes Yes
Procedimiento almacenado de Transact-SQLTransact-SQL**Transact-SQLTransact-SQL stored procedure** Yes Yes
procedimiento almacenado CLRCLR stored procedure SinNo Yes
Función definida por el usuario de Transact-SQLTransact-SQLTransact-SQLTransact-SQL user-defined function Yes Yes
Función CLR definida por el usuarioCLR user-defined function NoNo Yes
Desencadenador CLR (DML y DDL)CLR trigger (DML and DDL) NoNo NoNo
Desencadenador DML de Transact-SQLTransact-SQLTransact-SQLTransact-SQL DML trigger Yes SinNo
Desencadenador DDL de nivel de base de datos de Transact-SQLTransact-SQLTransact-SQLTransact-SQL database-level DDL trigger Yes SinNo
Desencadenador DDL de nivel de servidor de Transact-SQLTransact-SQLTransact-SQLTransact-SQL server-level DDL trigger Yes NoNo
Procedimientos almacenados extendidosExtended stored procedures NoNo Yes
ColaQueue SinNo Yes
Synonym (Sinónimo)Synonym SinNo Yes
Tipo (tipo CLR y alias definido por el usuario)Type (alias and CLR user-defined type) NoNo Yes
Colección de esquemas XMLXML schema collection SinNo Yes
Función de particiónPartition function NoNo Yes
     

* Una tabla se realiza un seguimiento como una entidad de referencia solo cuando hace referencia a un Transact-SQLTransact-SQL módulo, tipo definido por el usuario o la colección de esquemas XML en la definición de una columna calculada, restricción CHECK o restricción predeterminada.* 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.

** No se realiza el seguimiento de los procedimientos almacenados numerados con un valor entero mayor que 1 como la entidad que hace referencia ni como la entidad a la que se hace referencia.** Numbered stored procedures with an integer value greater than 1 are not tracked as either a referencing or referenced entity.

PermisosPermissions

Requiere el permiso SELECT en sys.dm_sql_referenced_entities y el permiso VIEW DEFINITION en la entidad de referencia.Requires SELECT permission on sys.dm_sql_referenced_entities and VIEW DEFINITION permission on the referencing entity. De forma predeterminada, se concede el permiso SELECT a public.By default, SELECT permission is granted to public. Requiere el permiso VIEW DEFINITION en la base de datos o el permiso ALTER DATABASE DDL TRIGGER en la base de datos si la entidad de referencia es un desencadenador DDL de base de datos.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. Requiere el permiso VIEW ANY DEFINITION en el servidor si la entidad de referencia es un desencadenador DDL de servidor.Requires VIEW ANY DEFINITION permission on the server when the referencing entity is a server-level DDL trigger.

EjemplosExamples

A.A. Devuelve las entidades que se hace referencia a un desencadenador DDL de nivel de base de datosReturn entities that are referenced by a database-level DDL trigger

El ejemplo siguiente devuelve las entidades (tablas y columnas) a las que hace referencia el desencadenador DDL de base de datos 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. Devuelve las entidades que se hace referencia a un objetoReturn entities that are referenced by an object

El ejemplo siguiente devuelve las entidades a las que hace referencia la función definida por el usuario 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. Devolver las dependencias de columnaReturn column dependencies

El ejemplo siguiente crea la tabla Table1 con la columna calculada c, definida como la suma de las columnas a y b.The following example creates the table Table1 with the computed column c defined as the sum of columns a and b. A continuación, se llama a la vista sys.dm_sql_referenced_entities.The sys.dm_sql_referenced_entities view is then called. La vista devuelve dos filas, una para cada columna definida en la columna calculada.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  

El conjunto de resultados es el siguiente.Here is the result set.

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

D.D. Devolver dependencias de las columnas no enlazadas a esquemaReturning non-schema-bound column dependencies

En el ejemplo siguiente se quita Table1 y se crea Table2 y el procedimiento almacenado Proc1.The following example drops Table1 and creates Table2 and stored procedure Proc1. El procedimiento hace referencia a Table2 y a la tabla no existente Table1.The procedure references Table2 and the nonexistent table Table1. La vista sys.dm_sql_referenced_entities se ejecuta con el procedimiento almacenado especificado como la entidad de referencia.The view sys.dm_sql_referenced_entities is run with the stored procedure specified as the referencing entity. El conjunto de resultados muestra una fila para Table1 y tres filas para Table2.The result set shows one row for Table1 and 3 rows for Table2. Como Table1 no existe, no se pueden resolver las dependencias de columna y se devuelve el error 2020.Because Table1 does not exist, the column dependencies cannot be resolved and error 2020 is returned. La columna is_all_columns_found devuelve 0 para Table1, lo que indica que había columnas que no se pudieron detectar.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  

El conjunto de resultados es el siguiente.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. Ejemplo de mantenimiento dinámico de las dependenciasDemonstrating dynamic dependency maintenance

Este ejemplo E se supone que el ejemplo D se ha ejecutado.This Example E assumes that Example D has been run. Ejemplo E muestra que las dependencias se mantienen de forma dinámica.Example E shows that dependencies are maintained dynamically. El ejemplo hace lo siguiente:The example does the following things:

  1. Vuelve a crear Table1, que se quitó en el ejemplo D.Re-creates Table1, which was dropped in Example D.
  2. A continuación, ejecute sys.dm_sql_referenced_entities se vuelve a ejecutar con el procedimiento almacenado especificado como la entidad de referencia.Run Then sys.dm_sql_referenced_entities is run again with the stored procedure specified as the referencing entity.

El conjunto de resultados que se devuelven las tablas y sus columnas respectivas definidas en el procedimiento almacenado, se muestra.The result set shows that both tables, and their respective columns defined in the stored procedure, are returned. Además, la columna is_all_columns_found devuelve un 1 para todos los objetos y columnas.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  

El conjunto de resultados es el siguiente.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. Devolución del uso de objetos o columnasReturning object or column usage

El ejemplo siguiente devuelve los objetos y las dependencias de columna del procedimiento almacenado HumanResources.uspUpdateEmployeePersonalInfo.The following example returns the objects and column dependencies of the stored procedure HumanResources.uspUpdateEmployeePersonalInfo. Este procedimiento actualiza las columnas NationalIDNumber, BirthDate,``MaritalStatus, y Gender de la Employee tabla basada en un determinado BusinessEntityID valor.This procedure updates the columns NationalIDNumber, BirthDate,``MaritalStatus, and Gender of the Employee table based on a specified BusinessEntityID value. Otro procedimiento almacenado, upsLogError se define en un bloque TRY... Bloque CATCH para capturar los errores de ejecución.Another stored procedure, upsLogError is defined in a TRY...CATCH block to capture any execution errors. Las columnas is_selected, is_updated y is_select_all devuelven información sobre cómo se utilizan estos objetos y columnas dentro del objeto de referencia.The is_selected, is_updated, and is_select_all columns return information about how these objects and columns are used within the referencing object. La tabla y las columnas que se modifican se indican mediante un 1 en la columna is_updated.The table and columns that are modified are indicated by a 1 in the is_updated column. La columna BusinessEntityID solo se selecciona y el procedimiento almacenado uspLogError ni se selecciona ni se modifica.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')
;

El conjunto de resultados es el siguiente.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

Vea tambiénSee 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)