Ich habe eine Tabelle (tblEntities), die die folgenden Spalten enthält: ID (Identität) BEDEUTUNG (varchar) START_DATE (Datetime) STOP_DATE (DateTime, Nullwerte zulassen)INSERT neue Zeilen in der Tabelle aus einer Liste von Werten, wenn sie nicht bereits existieren
Ich habe eine lange Liste von Werten, die ich dieser Tabelle hinzufügen möchte. Diese Liste wird erhalten durch eine andere Tabelle abfragt (tblOther):
SELECT ITEMNAME
FROM tblOther
GROUP BY ITEMNAME
So für jeden oben von der Abfrage generierten Artikel mag ich:
- eine neue Zeile Einfügen mit ITEMNAME aus der Abfrage oben mit dahin in dem tblEntities Tisch, wenn es die START_DATE als ‚1/1/1900‘ existiert Stellen nicht bereits in der Tabelle
- die STOP_DATE als das aktuelle Datum einstellen
Wie kann ich das erreichen? Geht es darum, ein WHERE IN aus der Liste zu verwenden oder muss ich eine Funktion zum Durchschleifen erstellen?
Danke für die Hilfe,
JOIN verwenden Es ist eine Frage der Verwendung von ' WHERE NICHT EXISTS() ' –
MERGE kann es besser tun https://msdn.microsoft.com/en-us/library/bb510625.aspx –