J'utilise une instruction SQL pour supprimer les enregistrements qui existent sur une autre base de données, mais cela prend beaucoup de temps.Amélioration des performances du script ASP qui prend plus de 3 minutes
Existe-t-il une autre alternative au code ci-dessous qui peut être plus rapide? La base de données est Access.
email_DB.mdb est d'où je veux supprimer les adresses e-mail qui existent sur l'autre base de données (de Newsletter_Subscribers de table) customers.mdb est l'autre base de données (clients de table)
SQLRemoveDupes = "DELETE FROM Newsletter_Subscribers WHERE EXISTS (select * from [" & strDBPath & "Customers].Customers " _
& "where Subscriber_Email = Email or Subscriber_Email = EmailO)"
NewsletterConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" & strDBPath & "email_DB.mdb"
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = NewsletterConn
MM_editCmd.CommandText = SQLRemoveDupes
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close
Set MM_editCmd = Nothing
EDIT: J'ai essayé le SQL ci-dessous de l'une des réponses, mais je continue à obtenir une erreur lors de l'exécuter:
SQL: SUPPRIMER dE Newsletter_Subscribers oU eN CustID (sélectionnez CustID de [ « & strDBPath & » clients] .Customers où Subscriber_Email = E-mail ou Subscriber_Email = Ema ilO)
Je reçois un "trop peu de paramètres. Attendu 1. "message d'erreur sur la ligne Exécuter
IIRC, ce message peut signifier que vous utilisez un nom de colonne qui n'existe pas, il est donc le traiter comme un paramètre. – dkretz
Il doit y avoir un * entre DELETE et FROM – AnonJr