Darkstorm Geschrieben 4. März 2002 Teilen Geschrieben 4. März 2002 hossa! auf ein neues. also: ich hab hier zwei verschiedene datenbanken und soll aus der datenbank1 werte aus einer tabelle in eine oder mehrere tabellen der datenbank2 packen. das ist so nicht das problem. ABER... in der tabelle in datenbank2 sind schon einige datensätze vorhanden, die auch in der tabelle in der datenbank1 vorhanden sind. wie krieg ich es hin, dass er nur die datensätze einfügt, die noch nicht vorhanden sind??? es sollen keine namen doppelt erscheinen. ich hab schon tausend wege wie es nicht geht und krieg hier mittlerweile die krise. HILFE!!!!!:confused: :confused: :confused: ach ja ich arbeite mit dem MSSQL 2k. gruß Dark Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lung Geschrieben 4. März 2002 Teilen Geschrieben 4. März 2002 Hmm, haste mal überlegt, erstmal ne Abfrage zu kreieren, die die nicht gleichen Stansätze ausfiltert und dann das Ergebnis dieser Abfrage einzuspielen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darkstorm Geschrieben 4. März 2002 Autor Teilen Geschrieben 4. März 2002 hab ich drüber überlegt, leider fehlt mir das nötige wissen, um diese überlegung in die praxis umzusetzen. kannst du mir da evtl. auch weiterhelfen??? Dark :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lung Geschrieben 4. März 2002 Teilen Geschrieben 4. März 2002 Bedingung ist, daß du eine eindeutige Information hast. Diese Info sollte möglichst in beiden Quellen gleich sein, sonst funktioniert leider der Abgelich nicht. Wenn du also z. B. eine Personalnummer oder so hast, wäre das Klasse, ansonsten solltest du deine Felder checken, ob du so eine Nummer selbst kreieren kannst. Der nächste Schritt wäre dann die Kontrolle ob du alle Datensätze erhalten hast, die du hinzufügen sollst. Und dann eine Anfügeabfrage, die die ausgewählten Datensätze an die Tabelle bzw. Datenbank anfügt. Hmm, jetzt weiß ich leider nicht, wie die MSSQL2K-Code aussieht, da ich selbst nicht damit arbeite, sondern als HauptDB Access97 (Firmensoftware halt ) nutze Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darkstorm Geschrieben 4. März 2002 Autor Teilen Geschrieben 4. März 2002 ich könnte über die namen und die adressen verbinden, das hab ich zumindest als alternative. ne nummer hab ich noch nicht. die kann ich erst generieren, wenn die datensätze in der anderen tabelle sind. falls dir was einfällt schreib mir einfach die schritte unter access. ich setz die dann geistig um. dark Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Lung Geschrieben 4. März 2002 Teilen Geschrieben 4. März 2002 Ne Alternative wäre, wenn du Access hast, dann kannst du dir zum Test einen ähnlichen Vorgang anlegen und dir dann den SQL-Code anzeigen lassen. Den könntest du wahrscheinlich fast so übernehmen, wie Access in darstellt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darkstorm Geschrieben 4. März 2002 Autor Teilen Geschrieben 4. März 2002 ich versuchs einfach mal. mittlerweile würde ich auch mit nem löffel nen strand umgraben, wenn es hilft. Danke Dark Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DePlague Geschrieben 9. April 2002 Teilen Geschrieben 9. April 2002 sollte doch eigendlich nicht das Problem sein... in der DB (Tabelle 1)wo schon Daten vorhanden sind die nicht nochmal doppelt erscheinen sollen musst du erst auslesen, speicherst dann die werte (bsp. array) dann machst du ein Select auf die andere Tabelle (Tabelle 2)ala SELECT * FROM [DB-NAME] WHERE NOT [FELDNAME]="[FELDWERT]" wobei dann logischer Weise FELDWERT dann deine vorher gespeicherte Wert ist und die dann neu selectierten Werte schreibst du dann einfach in die Tabelle (Tabelle 2) _____________ oder habe ich jetzt was falsch verstanden??? hoffe konnte helfen... DePlague Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Darkstorm Geschrieben 10. April 2002 Autor Teilen Geschrieben 10. April 2002 Danke Danke für die Tips. Ich hab es irgendwie gelöst gekriegt. Umständlich aber effektiv. Hauptsache läuft. Gruß Dark Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Panther Geschrieben 10. April 2002 Teilen Geschrieben 10. April 2002 Also es geht das du ne Abfrage im Select Statement machst in der die beiden Felder die in beiden DB's gleich sind vergleichst. oder um einen nicht sauberen aber auch möglichen weg zu nehmen kannst du auf das Feld das in der Tabelle eindeutig ist und die nur einmal vorkommen einen Primary Key legen. Dann können keine Daten eingefügt werden die schon existiren. z.B.: Primary Key auf Nachname und Vorname (geht unter SQL Server ja auch über mehrere Spalten). Dann kann nie ien Datansatz eingefügt werden bei dem Nachname und Vorname in der DB schon vorhanden sind. Wenn aber der Vorname anders ist kann man nen Datensatz einfügen der den gleichen Nachnamen hat. Wenn du also versuchst nen Datensatz hinzuzufügen der schon da ist bekommst du einen Fehler mit der Meldung : Primary Key Verletzung, kann Datensatz nicht einfügen (oder so ähnlich). In Verbindung mit nem guten Seöect Statement hast du über nen Primary Key also ne Doppelte Sicherheit das du keinee Doppelten Werte erhälst. Und suchen in der DB geht auch schneller wenn du nach diesem Key suchst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
loeti Geschrieben 13. April 2002 Teilen Geschrieben 13. April 2002 Ich weiß zwar nicht, ob das auch in MSSQL geht, aber folgendes müsste eigentlich Standard SQL sein: 1) Mit folgendem Statement übernimmst du alle Datensätze aus <tab1> nach <tab2>: insert into <tab2> select <spalte 1>, <spalte 2>, ..., <spalte n> from tab1 2) Wenn du nun einschränken möchtest, dass du nur diejenigen Sätze übernimmst, die noch nicht in der Zieltabelle existieren, nimmst du einfach eine "where" Klausel hinzu: insert into <tab2> select <spalte 1>, <spalte 2>, ..., <spalte n> from tab1 t where <spalte x> not in ( select <spalte x> from <tab2> ) So geht's zumindest in Oracle. Es kann sein, dass du hier noch "as" Schlüsselwörter einfügen musst (vor "select" und zwischen "tab1" und "t" in der "from" Klausel) ?! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.