SQL Server:PRINT输出不会立即显示

在SQL Server 2005 Management Studio中,看起来PRINT语句的输出不会立即出现:如果我有一个PRINT语句后跟一个长时间运行的语句,PRINT输出在下列语句之后才出现。

有什么办法可以提前刷新输出吗? 我正在运行一些升级脚本,需要完成一个年龄,我想知道脚本有多远(所以我知道是等几分钟,然后开始下一个,还是去吃午餐)。

不可以。只有在提交事务时,返回其他logging集或语句完成时才会返回它们(在SQL批处理中go语句终止符)。 您可以使用非致命错误级别(0-18)的raiserror来获得这种types的即时反馈。 例如:

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

对我来说,它只是通过打印命令后,把GO命令,例如

 print 'test' print 'test' go 

一般来说,我的结论如下:在SMS GUI或sqlcmd.exe中执行的mssql脚本执行的输出在第一个GO语句中刷新到file,stdoutput,gui窗口或直到脚本结束。

在存储过程内部刷新function不同,因为你不能放置内部。

参考: tsql Go语句