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 is very slow for me to search for a particular procedure manually.
I know that there is a stored procedure which I need to look at to fix a bug, somewhere in the entire project, it is called XYZ_procedure
How do I search for this procedure over all of my databases in SQL Server Management Studio?
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??
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With