Transact-SQL: Echoing stored procedure status during run rather than getting all print statements at end.

Hello,

I have a stored procedure that executes several other stored procedures, some of them with fairly lengthy run-times.  I would like update statements to print between the sub stored procedures.  I have print statements between them but what happens is that all of my 'update the user' statements, both from within the sub stored procedures and the main procedure, are printed when the main stored procedure is completely done running.

I currently run this through SQL Query Analyzer but am more than willing to switch to something else if that is what it takes to get run time updates.

Thanks

CODE from sp:

print "Renaming the old table..."
execute sp_Rename CurrentMonth, @previousMonthName
print "Done."
print "Creating the CDT . . . "
execute Create_CDT_By_Date
print "Done. "
execute Truncate_Analyze_Log
print "Updating the CDT . . ."
execute Update_CDT
print "Done."
execute Truncate_Analyze_Log
print "Indexing the CDT . . ."
execute Index_CDT
print "Done.

LVL 2
doryllisAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

CJ_SCommented:
Try placing GO statements in between. Without the GO statement it will be ONE batch

print "Renaming the old table..."
execute sp_Rename CurrentMonth, @previousMonthName
print "Done."GO
print "Creating the CDT . . . "
GO
execute Create_CDT_By_Date
print "Done. "
GO
execute Truncate_Analyze_Log
print "Updating the CDT . . ."
GO
execute Update_CDT
print "Done."
GO
execute Truncate_Analyze_Log
print "Indexing the CDT . . ."
GO
execute Index_CDT
print "Done.
GO
0
SQLMasterCommented:
I think you just can't do this. A probably better way will be to maintain a log table which logs the procedure name and its result.Instead of printing the result, you can insert the row in that table and then query it for your stored procedures results

Cheers
0
doryllisAuthor Commented:
Sorry, I forgot to mention that I have some variables from the top level that I need to see used in lower level.  When you place GO statements in the whole thing then you lose your variables because they are only for the batch they were declared for.

However, looking at it I see that I only have 2 procedures (short and quick ones) at the very top of this whole sequence that actually use those variables, so for this one I think that answer will now work.

I would like to be able to use variables consistently thorugh out and not have to gang variables at the top order to get feedback like that.  
0
Determine the Perfect Price for Your IT Services

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden with our free interactive tool and use it to determine the right price for your IT services. Download your free eBook now!

ChrisKingCommented:
this is actually a "feature" of the network transport layer.

it batches up small results sets and wont send them to the client until the buffer is full or the procedure finishes running as it considers the more efficient on the network (which it is) but that does not help you.

sorry, no idea how to override the settings :(
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
doryllisAuthor Commented:
Thanks...

I was afraid I was asking an impossibility/improbablility so the answers given didn't surprise me. I split the points because all answers were correct ChrisKing gave me the technicality of it And SQLMaster and CJ_S both gave good darn answers.  CJ_S I will be able to use [sorta] on this project but the ultimate answer is. . . it can't be done the way I would like.

Thanks again for your answers.
0
doryllisAuthor Commented:
I found a better answer.

If you change your settings in Query analyzer to, "Results in Text" then it will display results of queries as they return rather than waiting for all of them to complete to display them in a grid.  
This setting can be reached by right clicking in the query area of your Query Analyzer Window and selecting "Results in Text" to return to your normal grid view right click and say "Results in Grid".

This setting can also be reached through the Query menu bar item.

Thanks,
Dory
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft SQL Server

From novice to tech pro — start learning today.