I have recently joined a software project that has approximately 20-40 databases.
Each database has at least 200 stored procedures, some of them have many more, so it i
If you need to find database objects (e.g. tables, columns, triggers) by name - have a look at the FREE Red-Gate tool called SQL Search which does this - it searches your entire database for any kind of string(s).
It's a great must-have tool for any DBA or database developer - did I already mention it's absolutely FREE to use for any kind of use??
I think the simplest way is to use the undocumented stored procedure sp_MSForeachdb
which executes a command for each database:
EXEC sp_MSforeachdb
'
USE ?
IF EXISTS (
SELECT 1
FROM sys.objects
WHERE name = ''XYZ_procedure''
)
SELECT DB_NAME();
'
If I am getting it right. You need a way to filter the procedures by name in SSMS. You can refer the following link :
Find Using Filter Settings In Object Explorer
You can use dynamic SQL to check procedure over all of databases in SQL Server Management Studio
USE MASTER
GO
BEGIN TRAN
DECLARE @strt INT,@End INT,@Database NVARCHAR(50)
SELECT * INTO #T FROM Sys.databases WITH(NOLOCK) WHERE database_id>4
ORDER BY 1
SELECT ROW_NUMBER ()OVER (ORDER BY database_Id)Db_Id,* INTO #TT FROM #T
SET @strt=1
SELECT @End=Max(Db_ID)FROM #tt
WHILE @strt<=@END
BEGIN
DECLARE @string NVARCHAR(MAX)
SELECT @Database=NAME FROM #TT WHERE Db_ID=@strt
Set @string=' Select '''+@Database+'''db_Name,* from '+@Database+'.sys.objects
WHERE Name=''XYZ_procedure'''
SET @strt=@strt+1
PRINT @string
EXEC(@string)
END
ROLLBACK TRAN