2012-04-12 14 views
19

SQLストアドプロシージャの実行状況を確認するには?

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 

だが、各delete文を削除するには長い時間がかかるとしましょう、しかし、私は、私は、SQL Management Studioで、それを実行しているときに、このストアドプロシージャの進行状況を確認したい。..次のストアドプロシージャを考えてみましょう。言い換えれば、私はPRINT文の出力を見て、いつどこにいるのかを見たいのです。しかし、ENTIRE実行の最後にはPRINT出力しか見ることができないようです。 PRINT出力をリアルタイムで見ることができるようにする方法はありますか?そうでない場合は、実行中のストアドプロシージャの進捗状況を確認できる他の方法はありますか?

答えて

31

あなたが10以下の重症度とRAISERRORを使用し、NOWAITオプションを使用する場合、それはすぐにクライアントに情報メッセージを送信します:

RAISERROR ('Deleting old data Part 1/3' , 0, 1) WITH NOWAIT

+0

感謝を使用する場合は、すぐに印刷するには、それは私が必要なものばかりです! :) –

6

はい、あなたが得ることができる必要がありますメッセージは、RAISERROR:

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

関連する問題