Monday, 15 October 2012

How to find all stored procedures ,functions and Views which are used specific table in all databases?

Using sp_Msforeachdb DECLARE @searchstring varchar(50) = '%DimDate%' CREATE TABLE #tempitems (DatabaseName varchar(50),name varchar(max), xtype nvarchar(max)) declare @MyVar varchar(max) set @MyVar=convert(varchar(max),'USE [?]; INSERT INTO #tempitems SELECT ''?'' ,name, case when o.xtype=''P'' then ''PROCEDURE'' WHEN o.xtype=''v'' then ''VIEW'' WHEN o.xtype in(''FN'',''TF'') then ''FUNCTION'' end as ROUTINE_TYPE FROM ?..syscomments c JOIN ?..sysobjects o ON c.id = o.id WHERE Text LIKE ''%' + @searchstring + '%'' GROUP BY name, case when o.xtype=''P'' then ''PROCEDURE'' WHEN o.xtype=''v'' then ''VIEW'' WHEN o.xtype in(''FN'',''TF'') then ''FUNCTION'' end Union select ''?'' Databasename,SPECIFIC_NAME Name, ROUTINE_TYPE as Type from ?.information_schema.routines with(nolock) where routine_definition like ''%' + @searchstring + '%''') EXEC sp_Msforeachdb @MyVar SELECT *from #tempitems Order by DatabaseName,name DROP Table #tempitems