SQL Server: PRINT output doesn't appear immediately

syqv5f0l  于 2023-11-16  发布在  SQL Server
关注(0)|答案(2)|浏览(186)

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).

2g32fytz

2g32fytz1#

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
olmpazwi

olmpazwi2#

You can add the below line immediately after PRINT statement:

RAISERROR(N'', 0, 1) WITH NOWAIT

This will print the message immediately in the Messages tab during execution.

相关问题