sql >> Database teknologi >  >> RDS >> Sqlserver

Send e-mail for hver række i et resultatsæt

Denne sag er præcis, hvad loops er gode til (og designet til).

Da du gør ting, der falder uden for databasens omfang, er det helt legitimt at bruge loops til dem.

Databaser er designet til at gemme data og udføre forespørgsler mod disse data, som returnerer dem på den mest praktiske måde.

Relationelle databaser kan returnere data i form af rækkesæt.

Markører (og loops, der bruger dem) er designet til at holde et stabilt rækkesæt, så nogle ting med hver af dens rækker kan udføres.

Med "ting" mener jeg her ikke rene databasetricks, men virkelige ting, der påvirker den ydre verden, de ting databasen er designet til, det være sig at vise en tabel på en webside, generere en finansiel rapport eller sende en e-mail.

Det er dårligt at bruge markører til rene databaseopgaver (som at transformere et rækkesæt til et andet), men det er helt rart at bruge dem til de ting som den, du beskrev.

Sætbaserede metoder er designet til at fungere inden for en enkelt transaktion.

Hvis din set-base-forespørgsel mislykkes af en eller anden grund, vil din database vende tilbage til den tilstand, den var før, men du kan ikke "rulle tilbage" en sendt e-mail. Du vil ikke være i stand til at holde styr på dine beskeder i tilfælde af en fejl.



  1. Den nemmeste måde at konvertere byte-array til Blob i java

  2. Konverter output fra MySQL-forespørgsel til utf8

  3. PL/SQL-udvikler hvordan får man den række, der fik indsættelsen til at mislykkes?

  4. Er Date et nøgleord i mysql?