Pregunta

Utilizo lo siguiente para obtener una lista de objetos subyacentes en una Vista:

SELECT view_name, Table_Name
FROM INFORMATION_SCHEMA.VIEW_TABLE_USAGE
WHERE View_Name IN 
    (
      'View1', 'View2'
    )
ORDER BY view_name, table_name

No pude encontrar ninguna tabla del sistema que proporcionara los objetos base en una función.¿Alguien tiene alguna idea de cómo obtener fácilmente esta información?Estoy tratando con muchas funciones con múltiples objetos de base de datos base y quiero evitar el esfuerzo manual para obtener esta información.¡Gracias!

¿Fue útil?

Solución

sp_depends le dará una lista de objetos dependientes en todas las versiones actualesde SQL Server, pero se enumera como en desuso.

Aquí hay un artículo de MSDN con una forma de encontrar objetos que hacen referencia a los objetosUna función y con pequeñas modificaciones Puede obtener la lista de objetos a los que se hace referencia una función:

SELECT OBJECT_NAME(object_id) AS referencing_object_name
 ,COALESCE(COL_NAME(object_id, column_id), '(n/a)') AS referencing_column_name
 ,object_name(referenced_major_id) as referenced_object
 ,*
FROM sys.sql_dependencies
--WHERE referenced_major_id = OBJECT_ID('schema.objectname')
where object_id = object_id('schema.objectname')
ORDER BY OBJECT_NAME(object_id), COL_NAME(object_id, column_id);

y como bono: http://beyondrelational.com/modules/2/blogs/28/posts/10399/tsql-lab-9-how-to-find-the-Dependencia-cadena de una base de datos-objeto-objeto.aspx

Otros consejos

* Por favor lee *

Como se señaló en la respuesta anterior de @Spörri, sys.sql_dependencies es obsoleto.


sys.sql_dependencies (Transact-SQL) :

Esta característica se eliminará en una versión futura de Microsoft SQL Server.Evite usar esta función en el nuevo trabajo de desarrollo y planee modificar las aplicaciones que actualmente usan esta función.Use SYS.SQL_EXPRESION_DEPENDENDES en su lugar.


Observé que entre 3 funciones, faltaba una identificación de objeto de función en la tabla obsoleta sys.sql_dependencies, y encontré todo en el sys.sql_expression_dependencies mesa en su lugar.Utilice lo siguiente para obtener las dependencias:

select * 
from sys.sql_expression_dependencies
where referencing_id =  object_id('schema.object_name') 
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top