Выполнение SQL для каждой строки результата

Я немного погуглил, но не могу найти ответ на этот вопрос. Я пытаюсь использовать Database Mail в SQL Server 2005 в хранимой процедуре, где идея состоит в том, чтобы отправлять отдельную почту для каждой строки в запросе, каждая почта зависит от адреса, находящегося в строках.

Представьте, например, 15 - 50 строк заказов на продукты со следующими данными: ID, CustomerName, CustomerEmail, ProductName, ProductCategory. Каждая из строк содержит адрес электронной почты клиента, а также категорию продукта. Мне нужно отправить подтверждение по электронной почте каждому из этих клиентов, используя их личные данные, относящиеся к их собственным строкам, а также фактический заказ по почте различным сотрудникам компании в зависимости от категории продукта.

Как я могу отправлять Database Mail динамически, как это?

Заранее спасибо!

Изменить 1: Наборы данных и т. Д. Не вариант, это должно быть запущено исключительно на SQL Server 2005. Я полагаю, что мне тогда придется искать курсоры.

3 ответа

Решение

Нет не возможно Отправка почты из базы данных - это вызов хранимой процедуры, и это не разрешено ни в запросах, ни в функциях.

Вы должны отправлять каждое письмо по одному. Вы можете использовать курсор на сервере в хранимой процедуре или перебирать таблицу в клиенте.

Загрузите таблицу в память, используя DataSet, а затем запустите foreach DataRow, получите почту и отправьте ее...

Вы имеете в виду каждый раз, когда добавляется новая строка (например, размещается заказ)? Если это так, вы можете использовать Trigger для отправки электронной почты каждый раз, когда строка вставляется или обновляется.

Другие вопросы по тегам