Stored Procedure - forcing execution order
        Posted  
        
            by meepmeep
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by meepmeep
        
        
        
        Published on 2010-04-21T12:47:56Z
        Indexed on 
            2010/04/21
            12:53 UTC
        
        
        Read the original article
        Hit count: 232
        
sql-server
|t-sql
I have a stored procedure that itself calls a list of other stored procedures in order:
CREATE PROCEDURE [dbo].[prSuperProc]
AS
BEGIN
    EXEC [dbo].[prProc1] 
    EXEC [dbo].[prProc2] 
    EXEC [dbo].[prProc3]
    --etc
END
However, I sometimes have some strange results in my tables, generated by prProc2, which is dependent on the results generated by prProc1. If I manually execute prProc1, prProc2, prProc3 in order then everything is fine. It appears that when I run the top-level procedure, that Proc2 is being executed before Proc1 has completed and committed its results to the db. It doesn't always go wrong, but it seems to go wrong when Proc1 has a long execution time (in this case ~10s).
How do I alter prSuperProc such that each procedure only executes once the preceding procedure has completed and committed? Transactions?
© Stack Overflow or respective owner