SQL Server: Die PRINT-Ausgabe wird nicht sofort angezeigt

78

In SQL Server 2005 Management Studio wird die Ausgabe von PRINT-Anweisungen nicht sofort angezeigt: Wenn ich eine PRINT-Anweisung gefolgt von einer lang laufenden Anweisung habe, wird die PRINT-Ausgabe erst nach der folgenden Anweisung angezeigt.

Gibt es eine Möglichkeit, den Ausgang früher zu spülen? Ich führe einige Upgrade-Skripte aus, deren Fertigstellung einige Zeit in Anspruch nimmt, und ich möchte wissen, wie weit das Skript fortgeschritten ist (damit ich weiß, ob ich ein paar Minuten warten und dann mit dem nächsten beginnen oder zum Mittagessen gehen soll ).

Roger Lipscombe
quelle
1
Haben Sie ein "GO" zwischen dem PRINT und der Langzeitanweisung?
Bernhard Hofmann
5
Mögliches Duplikat von Wie lösche ich den PRINT-Puffer in TSQL?
usr
1
Roger: Ich habe deine Schimpfe auf blog.differentpla.net/blog/2006/10/19/… gesehen . Ich habe die gleiche Beschwerde. Warum muss ich meine Anmeldeinformationen und die Wörter "SQLQuery999.sql" in diesem kurzen Bereich sehen, der alle anderen wichtigen Informationen verdrängt, oder?! Schön zu sehen, dass Sie sich melden, obwohl es nichts ändern wird. Ich muss auf die vom Visual Studio bereitgestellte Schnittstelle zurückgreifen, die den Server-Explorer verwendet, damit weniger tödliche Unfälle passieren können.
Jenna Leaf

Antworten:

121

Nein. Sie werden nur zurückgegeben, wenn eine Transaktion festgeschrieben wird, wenn andere Datensatzgruppen zurückgegeben werden oder eine Anweisung abgeschlossen ist ( goAnweisungsabschluss in einem SQL-Stapel). Sie können Raiserror bei nicht schwerwiegenden Fehlerstufen (0-18) verwenden, um sofortiges Feedback dieser Art zu erhalten. Zum Beispiel:

RAISERROR ('Foo', 10, 1) WITH NOWAIT
ConcernedOfTunbridgeWells
quelle
In meinen Tests werden DRUCKE vor RAISERROR ausgedruckt
Craig Efrein
3
Die Ausdrucke werden vor der Ausgabe von RAISERROR angezeigt, aber erst dann an den Client zurückgegeben, wenn die Ausnahme ausgelöst wird.
ConcernedOfTunbridgeWells