USE MASTER;
GO
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp;
CREATE TABLE #temp ([database_name] NVARCHAR(255), [procedure_name] NVARCHAR(255), last_execution_time DATETIME);
EXEC sp_MSForEachDB '
USE [?];
IF ''[?]'' NOT IN (''[master]'',
''[model]'', ''[msdb]'', ''[tempdb]'')
BEGIN
INSERT INTO #temp
SELECT
''[?]''
,p.name
,last_execution_time
FROM sys.procedures AS p
LEFT OUTER JOIN
sys.dm_exec_procedure_stats AS s
ON p.[object_id] = s.[object_id]
WHERE SUBSTRING(p.name,1,3)
not in (''dt_'',''sp_'')
ORDER BY p.name, s.last_execution_time;
END';
SELECT
[database_name]
,[procedure_name]
,[last_execution_time]
FROM #temp;
IF OBJECT_ID('tempdb..#temp') IS NOT NULL
DROP TABLE #temp;
GO