I'm trying to find all references to an object in an SQL Server database.
How can I quickly search? SQL Server Management Studio does not seem to do it. I use http://www.red-gate.com/products/SQL_Search/ but I'd like to find the "official" Microsoft solution to this. Is it in another product?
For example, when I do a mass search in visual studio, I would like to be able to also find something in all stored procedures.
Or maybe I'm not coding this the right way?
Carl
In SQL 2008 the DMV (Data Management Function) sys.dm_sql_referencing_entities was added. Its returns any object that references the object you pass it.
Use:
...because
SYSCOMMENTS
andINFORMATION_SCHEMA.routines
have nvarchar(4000) columns. So if "name_of_object" is used at position 3998, it won't be found.SYSCOMMENTS
does have multiple lines, butINFORMATION_SCHEMA.routines
truncates.I use this query to look for all tables (or text) in the stored procedures:
Very late to the party, but...
You can use the system proc
sys.sp_depends
:The result is a table listing all of the database objects that depend on (i.e., reference)
object_name
. Each row contains the name and type of the referring object, along with other info columns, depending on the type ofobject_name
.Note: This proc was added in MS SQL Server 2008.
See: MSDN docs
The docs say that this proc may be removed in a future release, and to use sys.dm_sql_referencing_entities instead, but it's still alive and kicking in MS SQL 2017.