Wie kann ich den Fortschritt beim Ausführen gespeicherter SQL-Prozeduren sehen?
Betrachten Sie die folgende gespeicherte Prozedur..
CREATE PROCEDURE SlowCleanUp (@MaxDate DATETIME)
AS
BEGIN
PRINT 'Deleting old data Part 1/3...'
DELETE FROM HugeTable1 where SaveDate < @MaxDate
PRINT 'Deleting old data Part 2/3...'
DELETE FROM HugeTable2 where SaveDate < @MaxDate
PRINT 'Deleting old data Part 3/3...'
DELETE FROM HugeTable3 where SaveDate < @MaxDate
PRINT 'Deleting old data COMPLETED.'
END
Lassen Sie uns sagen, dass jede delete-Anweisung eine lange Zeit dauern, um zu löschen, aber ich mag den Fortschritt der diese gespeicherte Prozedur, wenn ich laufen gehe es im SQL Management Studio. In anderen Worten, ich mag, um zu sehen, die die Ausgabe der PRINT-Anweisungen, um zu sehen, wo ich bin. Es scheint jedoch, dass sehe ich nur den PRINT-Ausgaben am Ende der GESAMTEN Laufzeit. Gibt es eine Möglichkeit es so zu machen, dass ich die PRINT-Ausgaben in Echtzeit? Wenn nicht, gibt es irgendeine andere Möglichkeit, die ich sehen kann den Fortschritt der ausgeführten gespeicherten Prozedur?
InformationsquelleAutor der Frage SF Lee | 2012-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie
RAISERROR
mit einem Schweregrad von 10 oder weniger, und verwenden Sie dieNOWAIT
option, es sendet eine Informationsmeldung an den client sofort:RAISERROR ('Deleting old data Part 1/3' , 0, 1) WITH NOWAIT
InformationsquelleAutor der Antwort Michael Fredrickson
Ja, Sie sollten in der Lage sein, um die Nachricht zu drucken, die sofort, wenn Sie RAISERROR:
RAISERROR('Hello',10,1) WITH NOWAIT
InformationsquelleAutor der Antwort Bridge