Esegui SQL per ogni riga di risultati
-
11-09-2019 - |
Domanda
Sono stato googling in giro per un po ', ma io non riesco a trovare una risposta a questo. Sto cercando di utilizzare la Posta elettronica database in SQL Server 2005 in una stored procedure in cui l'idea è di inviare la posta separata per ogni riga in una query, ognuna posta in base su un indirizzo che risiede nelle righe.
Immaginate per esempio 15 - 50 righe di ordini di prodotti con i seguenti dati: ID, CustomerName, CustomerEmail, ProductName, ProductCategory . Ognuna delle righe contiene l'e-mail del cliente così come la categoria di prodotto. Ho bisogno di inviare una mail di conferma a ciascuno di quei clienti che utilizzano i propri dati personali specifici per le proprie righe, così come la posta ordine reale di diverse società di persone a seconda della categoria del prodotto.
Come posso inviare database di posta in modo dinamico come questo?
Grazie in anticipo!
Modifica 1:. set di dati, ecc non sono un'opzione, questo deve essere eseguito esclusivamente su SQL Server 2005. Suppongo che dovrò guardare in cursori allora
Soluzione
No, non è possibile. Invio di posta database è un'invocazione di una stored procedure e questo non è consentito nelle query, né funzioni.
È necessario inviare ciascuno di posta per uno. È possibile utilizzare un cursore sul server in una stored procedure o iterare il tavolo nel client.
Altri suggerimenti
ottenere la tabella nella memoria utilizzando un DataSet e che correre DataRow foreach, prendere la posta e inviarla ...
Vuoi dire che ogni volta che viene aggiunta una nuova riga (ad esempio dell'ordine)? In tal caso, è possibile utilizzare un trigger per inviare l'e-mail ogni volta una riga viene inserita o aggiornata.