According to BOL (http://msdn.microsoft.com/en-us/library/ms181647.aspx), " If object is the name of a table or view, all the stored procedures or triggers that reference the table or view will be recompiled the next time that they are run." This does not appear to be the case. In the attached files I create a new database, table (with data), and non-trivial stored proc that references the table. I execute the procedure and note the plan is cached. I then run sp_recompile *on the table* and wait a few secs (just in case), and note that the plan is not removed from cache. I have some other scenarios in there as well. In the second attached repro script I make one change...I run sp_recompile *proc* instead of table. In that case everything works as I expect.