Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Liste der Tabellen, die in allen gespeicherten Prozeduren mit dem Schemanamen des SP verwendet werden

Probieren Sie diese Abfrage aus:

SELECT * 
FROM INFORMATION_SCHEMA.ROUTINES

Dadurch werden alle gespeicherten Prozeduren in der aktuellen Datenbank und auch das damit verbundene Schema zurückgegeben.

Wenn Sie die Tabellen und die zugehörige gespeicherte Prozedur abrufen möchten, versuchen Sie Folgendes:

SELECT t.TABLE_NAME, s.ROUTINE_NAME,s.SPECIFIC_SCHEMA
FROM INFORMATION_SCHEMA.TABLES t
INNER JOIN INFORMATION_SCHEMA.ROUTINES s 
ON s.ROUTINE_NAME IN 
(
        SELECT referencing_entity_name 
        FROM sys.dm_sql_referencing_entities(TABLE_SCHEMA + '.' + TABLE_NAME, 'OBJECT')
)
AND s.ROUTINE_TYPE = 'PROCEDURE'
WHERE t.TABLE_TYPE = 'BASE TABLE'

Bleiben Sie weg von den sysobject etc Views