7 évvel ezelőtt írtam egy cikket már erről, hogyan lehet állapot információt kliens oldalon kiiratni. Ami miatt ismét előjött, hogy ma is próbálkoztam egy nagy batch futtatásakor, de a PRINT parancsot használtam. Sajnos ennek van egy pici szépséghibája: akkor jeleníti meg, adja vissza a szöveget, amikor az adott batch/lekérdezés lefutott. Például:
PRINT 'valami';
WAITFOR DELAY '00:00:05';
PRINT 'valami';
Ez az első PRINT utasításnál sem írja ki, megvárja, míg a batch befejeződik. Nem túl jó. Kicsit változtatok.
PRINT 'valami';
GO
WAITFOR DELAY '00:00:05';
PRINT 'valami';
WAITFOR DELAY '00:00:05';
PRINT 'valami';
Itt a GO elválasztó miatt az első PRINT kiírásra kerül, a másik kettő csak 10 másodperc után. Helyette inkább a RAISERROR lenne a jó, ha egy batch-en belül akarom követni, hogy hol tart a kód. Pl.:
RAISERROR('valami', 10,1) WITH NOWAIT
WAITFOR DELAY '00:00:05';
RAISERROR('valami', 10,1) WITH NOWAIT
WAITFOR DELAY '00:00:05';
Ebben az esetben az első kiírás rögtön megtörténik, majd a második 5 másodperc után, nem a végén. Fontos, hogy kell a WITH NOWAIT.