I’ve run into a problem where one stored procedure calls another and I get an “Invalid Column” error. The child stored proc works fine when run separately.
Some similar errors could easily be cleaned up by using sp_recompile or sp_refreshsqlmodule.
But, turns out there is a little bug in the column name validation when there are temp tables in a child stored proc that have the same name as a temp table in the parent proc.
Solution: rename the temp table in one proc or another. Or, could use variable tables or some other structure in one or the other.