アプリケーションでストアドプロシージャを呼び出すと、データベースのレコードを削除するのに時間がかかります。私は、この実行中に私のアプリケーションプロセスを殺すと、レコードの削除が止まることに気付きました。クライアントプロセスが終了しても長時間実行されるSQLクエリを実行する
私はSqlCommand.ExecuteNonQuery
とSqlCommand.BeginExecuteNonQuery
を試しましたが、どちらも同じ効果があります。
クライアントに何が起こったとしても最後まで実行されるSQLクエリを開始する方法はありますか?
更新: この場合、プロセスを非同期に実行したい、できればパラメータ化する必要があります。
なぜ時間がかかるのですか?何百万というレコードを削除していますか?または巨大なテーブルのレコードを削除していますか?接続が終了した後もクエリの実行を続行する方法はありません。 – FLICKER
「火と忘れ」がないのですか? –
いいえ、あなたが仕事を実行しない限りはありません – FLICKER