Domanda

Io uso qui sotto per ottenere un elenco di oggetti sottostanti in 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
.

Non riesco a trovare alcuna tabella di sistema che ha fornito gli oggetti base in una funzione.Qualcuno ha idea di come tirare facilmente queste informazioni?Ho a che fare con molte funzioni con più oggetti DB di base e vuoi evitare sforzi manuali per ottenere queste informazioni.Grazie!

È stato utile?

Soluzione

sp_depends ti fornirà elenco di oggetti dipendenti in tutte le versioni attualidi SQL Server ma è elencato come deprecato.

Ecco un articolo MSDN con un modo per trovare oggetti che fanno riferimentoUna funzione e con piccole modifiche è possibile ottenere l'elenco di oggetto referenziato da una funzione:

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);
.

E come bonus: http://beyondrelational.com/modules/2/blogs/28/posts/10399/tql-lab-9-How-to-Find-the-Dependenziale-catena-of-a-database-oggetto.aspx

Altri suggerimenti

* Leggi *

Come indicato in @ spörri Risposta sopra, sys.sql_dependencies è deprecato.


.

sys.sql_dependendies (transact-sql) : .

Questa funzione verrà rimossa in una versione futura di Microsoft SQL Server.Evitare di utilizzare questa funzione nel nuovo lavoro di sviluppo e pianificare Modifica applicazioni che utilizzano attualmente questa funzione.Uso sys.sql_expression_dependendies invece.


.

Ho osservato tra 3 funzioni, un ID oggetto funzionali mancava nella tabella deprecata sys.sql_dependencies e ho trovato invece tutto nella tabella sys.sql_expression_dependencies.Quindi usa il seguente per ottenere le dipendenze:

select * 
from sys.sql_expression_dependencies
where referencing_id =  object_id('schema.object_name') 
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top