Ich habe hier eine Liste von 100 Arten von Artikel Geschmack. Dann habe ich einen Tisch, wo ich für jeden Gegenstand in jedem Geschmack einen Rekord brauche. Also, wenn ich 50 Artikel habe, brauche ich 100 Datensätze für jeden der 50 Artikel in dieser Tabelle_A. also wird es am Ende insgesamt 100x50 Datensätze in dieser Tabelle geben.SQL-Server - einfügen, wenn nicht vorhanden, sonst Update
Was ich jetzt habe, ist eine zufällige Mischung von Daten und ich weiß, dass ich keinen Datensatz für jede Art von Geschmack für jeden Artikel habe.
Wofür ich Hilfe brauche, ist eine Idee/ein Algorithmus, um dieses Problem zu lösen. Pseudo-Code würde tun. Ich habe einen Tisch mit allen möglichen Geschmacksrichtungen (tbl_flavor) und eine Tabelle mit allen 50 Artikeln (tbl_items). Diese beiden werden diktieren, was in Tabelle A eingegeben werden muss, was im Grunde ein Inventar ist.
Bitte beraten.
Können Sie Ihre Frage mit dem Code, den Sie bisher haben, aktualisieren? Es ist einfacher zu helfen, wenn wir sehen, was Sie bisher versucht haben und wo genau Sie stecken geblieben sind. – Brian
Mit CTE als (Wählen Sie A. *, B. * von einem Cross-Join B) Einfügen in FinalTable Wählen Sie * aus CTE, wo CTE.Key nicht existiert (Select Key from FinalTable) der Cross-Join gibt Ihnen einen vollständigen Satz der 50 * die 100. Die Nicht-Ausgänge werden alle diejenigen ausschließen, die Sie bereits in der Tabelle haben. Oder einfacher, löschen Sie einfach alles aus der Tabelle und fügen Sie alles aus dem Cross-Join ein (es sei denn, Sie müssen andere Attribute erhalten). – xQbert
Verwenden Sie die Merge-Klausel. –