Updates bij insert in tabel zonder bestaande records toe te voegen

Status
Niet open voor verdere reacties.

feeder1982

Nieuwe gebruiker
Lid geworden
1 jun 2014
Berichten
4
Goedemiddag,

Ik heb momenteel volgende sql-code:

INSERT INTO tbl_Result ( EXTERNAL_IDENTITY, PUTM, ISC, Station, [ZONE] )
SELECT Switchen_DV_EMS.EXTERNAL_IDENTITY, Switchen_DV_IRID.PUTM, Switchen_DV_IRID.ISC, [PUTM - Station].Station, Zone.ZONE
FROM Switchen_DV_EMS INNER JOIN (((Switchen_DV_IRID INNER JOIN [PUTM - Station] ON Switchen_DV_IRID.PUTM = [PUTM - Station].PUTM) INNER JOIN Station ON [PUTM - Station].Station = Station.STATION_ID_TEXT) INNER JOIN [Zone] ON Station.ZONE_IRN = Zone.IRN) ON Switchen_DV_EMS.EXTERNAL_IDENTITY = Switchen_DV_IRID.PUTM
WHERE (((Switchen_DV_EMS.EXTERNAL_IDENTITY)=[Switchen_DV_IRID].[PUTM]));

Regelmatig zijn er updates van de tabellen Switchen_DV_EMS en Switchen_DV_IRID waardoor ik deze query opnieuw moet draaien.
Momenteel voegt de query telkens alle matchen tussen Switchen_DV_EMS.EXTERNAL_IDENTITY en Switchen_DV_IRID.PUTM toe, maar dit is niet hetgeen ik zou willen. De reeds bestaande records in Tbl_Result zouden niet meer in deze tabel toegevoegd mogen worden. Hoe kan ik mijn sql-code best aanpassen hiervoor?

Alvast bedankt voor je hulp.

Joris
 
Dan zul je de bestaande records moeten uitsluiten. Ik doe dat meestal met een Not In(Select...) queryfilter op het sleutelveld.
 
Door je procedure te laten voorafgaan door bv een DLookup procedure die zoekt of de record bestaat en dan je bestaande procedure te ontdubbelen in een die een update doet van die record (indien hij dus bestaat volgens de DLookup) en je andere procedure die dus een record toevoegt (al die dus niet bestaat volgens je DLookup).
 
@Johan: waarom zou je extra handelingen willen uitvoeren met DLookup als het ook in éėn keer kan?
 
Was maar een idee of voorbeeld, je kan bij het ontdubbelen inderdaad beide keren gaan zoeken of iets bestaat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan