Technical Article

usp_tableReference

,

Recently I was faced with situation where I had to find all the store procedures referencing a table from within and across other databases. Since I did not get a code to get SPs from all the databases on the server, I came up with this script. Although, I am just searching for table name, it's possible there could be a table with same name but with different schema or in a different database.

CREATE PROCEDURE usp_tableReference ( @tableName   varchar(256))
/*
Author		:		Ankush Parab
Created on	:		2013/08/01
Dependency	:		DMV- sys.sql_modules
Purpose		:		To find the SPs which are referencing the table passed as argument from all databases on server.
*/
AS
BEGIN
	CREATE TABLE  #retSPs
	(
		dbName varchar(256),
		spName varchar(1024)
	)
 
	declare @cmd varchar(1024)
	set @cmd = 'use ?;	INSERT INTO #retSPs(dbName, spName) 
						SELECT ''?'',
						OBJECT_NAME(object_id)
						FROM sys.sql_modules
						WHERE definition like ''%'+ 
						@tableName + '%'''

	exec sp_MSforeachdb @cmd

	SELECT *
	FROM #retSPs
	DROP TABLE #retSPs

END;
GO

Rate

3.5 (2)

You rated this post out of 5. Change rating

Share

Share

Rate

3.5 (2)

You rated this post out of 5. Change rating