目的:単一の関数呼び出しを介して asp.net Web ページのコード ビハインドから非常に遅いストアド プロシージャ (パラメーター付き) を非同期的に呼び出し、それを忘れます。
注:SqlCommand.BeginExecuteNonQuery
呼び出しを行わずに使用しようとしましたがSqlCommand.EndExecuteNonQuery
(以下のコードを参照)、ストアド プロシージャは実行されませんでした。(小さなストアド プロシージャを使用して、テスト用にテーブルの単一フィールドを更新しましたが、フィールドは更新されませんでした。使用すると更新されますSqlCommand.ExecuteNonQuery
)。
私は興味がなく、ストアド プロシージャがいつ終了するかわかりません。(だから、呼び出しが終わるのが待ちきれないSqlCommand.EndExecuteNonQuery
。)
状況: 調査の結果、SQL ジョブをこの目的に使用できることがわかりました。そしてspパラメータについて; それらをテーブルに格納してから、sp で読み取ることができます。ただし、これが私の問題に対する正しいアプローチであるかどうかはわかりません (SQL の世界は初めてです)。この目的でのSQLジョブの使用についてコメントするか、代替案を提案していただければ幸いです。ありがとう。
コード:
using (SqlConnection connection = new SqlConnection(
@"Data Source=XXX\MSSQL2008R2;Initial Catalog=YYY;Integrated Security=True"
+ ";Asynchronous Processing=true"))
{
connection.Open();
SqlCommand cmd = new SqlCommand("spTestProcedure", connection);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@pText", DateTime.Now.ToString()));
cmd.BeginExecuteNonQuery(); //Doesn't work.
//cmd.ExecuteNonQuery(); // This works.
}