Цель: Вызов очень медленной хранимой процедуры (с параметрами) асинхронно из кода за веб-страницей asp.net с помощью одного вызова функции, а затем забывание об этом.
Примечания: Я попытался использовать 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.
}