Выполнение SQL для каждой строки результата - PullRequest
0 голосов
/ 01 декабря 2009

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

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

Как я могу отправлять почту базы данных динамически, как это?

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

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

Ответы [ 3 ]

0 голосов
/ 01 декабря 2009

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

0 голосов
/ 01 декабря 2009

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

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

0 голосов
/ 01 декабря 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...