Question

We are getting strange errors on one of our stored procedures. This stored procedure calls other stored procedures & we are getting errors relating to columns that cannot be found in the sub procedures. For example:

Exec StoredProc1, this stored proc calls StoredProc2, StoredProc3 & StoredProc4

When I execute StoredProc1 the first time I get errors relating to columns on StoredProc2. I then execute StoredProc2 directly and it works, then I call StoredProc1 again and it complains about column Errors on StoredProc3, and so on.

I am guessing this has to do with how SQL Server has cached its execution plans for StoredProc1, & executing each stored proc in turn forces the Stored Plans / Dependencies to be updated.

How can I correct this across the board?

If I execute each dependent procedure one at a time then execute the parent it works. If I then run these commands:

CHECKPOINT; 
DBCC DROPCLEANBUFFERS;
DBCC FREEPROCCACHE; 

and execute the parent procedure I get the errors again.

The stored procedures all use a temporary table with the same name but if I understand it correctly because they are in different procedures they would create separate tables.

No correct solution

Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top