sql >> Database >  >> RDS >> Sqlserver

Lijst met tabellen die worden gebruikt in alle opgeslagen procedures met de schemanaam van SP

Probeer deze zoekopdracht:

SELECT * 
FROM INFORMATION_SCHEMA.ROUTINES

Dit retourneert alle opgeslagen procedures in de huidige database en ook het bijbehorende schema.

Als je de tabellen en de gerelateerde opgeslagen procedure wilt krijgen, probeer dan zoiets als dit:

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'

Blijf weg van de weergaven van sysobject enz.




  1. Schadelijke, alomtegenwoordige mythes over SQL Server-prestaties

  2. Voorwaardelijk invoegen op basis van LAST_INSERT_ID

  3. Hoe duplicaten op een MySQL-tabel te verwijderen?

  4. 5 krachtige functies van Microsoft Access