Выполнение SQL для каждой строки результата
Я немного погуглил, но не могу найти ответ на этот вопрос. Я пытаюсь использовать Database Mail в SQL Server 2005 в хранимой процедуре, где идея состоит в том, чтобы отправлять отдельную почту для каждой строки в запросе, каждая почта зависит от адреса, находящегося в строках.
Представьте, например, 15 - 50 строк заказов на продукты со следующими данными: ID, CustomerName, CustomerEmail, ProductName, ProductCategory. Каждая из строк содержит адрес электронной почты клиента, а также категорию продукта. Мне нужно отправить подтверждение по электронной почте каждому из этих клиентов, используя их личные данные, относящиеся к их собственным строкам, а также фактический заказ по почте различным сотрудникам компании в зависимости от категории продукта.
Как я могу отправлять Database Mail динамически, как это?
Заранее спасибо!
Изменить 1: Наборы данных и т. Д. Не вариант, это должно быть запущено исключительно на SQL Server 2005. Я полагаю, что мне тогда придется искать курсоры.
3 ответа
Нет не возможно Отправка почты из базы данных - это вызов хранимой процедуры, и это не разрешено ни в запросах, ни в функциях.
Вы должны отправлять каждое письмо по одному. Вы можете использовать курсор на сервере в хранимой процедуре или перебирать таблицу в клиенте.
Загрузите таблицу в память, используя DataSet, а затем запустите foreach DataRow, получите почту и отправьте ее...
Вы имеете в виду каждый раз, когда добавляется новая строка (например, размещается заказ)? Если это так, вы можете использовать Trigger для отправки электронной почты каждый раз, когда строка вставляется или обновляется.