I have sql server database with numerous tables, some no longer used so I want to remove them. All database interactivity is via stored procedure to these tables.
Is there a database sql script that I can use that will list all tables not referenced in any of the stored procedures in the database?
You can’t do this if you use any dynamic T-SQL. Dynamic T-SQL won’t show up in any investigation of object dependencies.
Instead, you can use the DMV sys.dm_db_index_usage_stats to find what objects haven’t been referenced by any queries. Here’s a query I did on SQLServerPedia for that:
http://sqlserverpedia.com/wiki/Find_Indexes_Not_In_Use
The query is designed for performance tuning indexes, so you’ll need to tweak a few lines. Here’s the modified query:
Keep in mind that this catches all indexes, and you’ll need to sift through – some of your objects may be heaps, some may have clustered indexes, etc. I’ll leave this as a wiki so someone more ambitious than me can edit it to build a deduped list. 😀