Search code examples
sql-server

PRINT output doesn't appear immediately in the Messages pane in SSMS


In SQL Server 2005 Management Studio, it appears that the output of PRINT statements doesn't appear immediately: If I have a PRINT statement followed by a long-running statement, the PRINT output doesn't appear until after the following statement.

Is there any way to flush the output earlier? I'm running some upgrade scripts that take an age to complete, and I'd like to know how far along the script is (so I know whether to wait a few minutes and then start the next one, or whether to go to lunch).


Solution

  • No. Output of PRINT statements will only be returned when a transaction is committed, when other record sets are returned or a statement is completed (go statement terminator in a SQL batch). You can use raiserror at non-fatal error levels (0-18) to get immediate feedback of this sort. For example:

    RAISERROR ('Foo', 10, 1) WITH NOWAIT