Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Liste des tables utilisées dans toutes les procédures stockées avec le nom de schéma du SP

Essayez cette requête :

SELECT * 
FROM INFORMATION_SCHEMA.ROUTINES

Cela renverra toutes les procédures stockées dans la base de données actuelle ainsi que le schéma qui lui est associé.

Si vous souhaitez obtenir les tables et la procédure stockée associée, essayez quelque chose comme ceci :

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'

Éloignez-vous des vues sysobject etc