Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Anfügeabfrage ohne doppelte Datensätze

Frage Microsoft Microsoft Office

Mitglied: Maik87

Maik87 (Level 2) - Jetzt verbinden

05.08.2008, aktualisiert 13:19 Uhr, 12483 Aufrufe, 5 Kommentare

Hallo,
ich brauche eine Anfügeabfrage, die nur die Datensätze anfügt, die noch nicht in der Zieltabelle sind.

Wie geht das?

Vielen Dank
Mitglied: AndreasHoster
05.08.2008 um 11:36 Uhr
Indem man in der where Bedingung des Insert Into die Felder so verknüpft, daß nur die genommen werden, die noch nicht in der Ziel-Tabelle sind.
Da stellt sich schon die erste Frage, was bedeutet bei Dir die Formulierung <die noch nicht in der Zieltabelle sind>?
Das der Primärschlüssel schon existiert, daß ein sonstiges Identifikationsfeld schon existiert, oder das alle Felder mit genau denselben Werten drinstehen?
Einfaches Beispiel, mit einzelnem Primärschlüssel namens ID:
INSERT INTO Test1
SELECT * FROM Test where ID not in (Select ID from Test1)
Bitte warten ..
Mitglied: Maik87
05.08.2008 um 11:38 Uhr
Nicht schon in der Zieltabelle bedeutet, dass nicht exakt dieser Datensatz schon so vorhanden ist. Da ich selbst die Primärschlüssel übernehme, habe ich eine 1:1 Kopie. Es ist also ALLES identisch in diesem Fall.
Bitte warten ..
Mitglied: AndreasHoster
05.08.2008 um 12:05 Uhr
In dem Fall haben wir schon ein erstes Problem.
Wenn nicht alle Felder identisch sind, soll er übernommen werden. Was machen wir aber, wenn der Primärschlüssel im Ziel schon vorhanden ist, aber sich in den nicht Primärschlüsselfeldern Unterschiede befinden?
Dann kann der Datensatz nicht eingefügt werden, da es eine Primärschlüsselverletzung gibt, aber er sollte ingefügt werden, da es Unterschiede in den Sekundärfeldern gibt.

Falls es ausreichend ist, nur die hinzuzufügen, deren Primärschlüssel in der Zieltabelle nicht vorhanden ist, fällt mir für Access eine noch viel einfachere Lösung ein:
Ein Makro machen, die Warnmeldungen ausschalten, dann <Insert into Zieltabelle select * from Quelltabelle>, die Warnmeldungen wieder einschalten.
Die Zeilen, bei denen der Primärschlüssel schon vorhanden ist werden eh nicht übernommen, da es eine Primärschlüsselverletzung wäre und die Meldung deswegen wird unterdrückt.
Bitte warten ..
Mitglied: Maik87
05.08.2008 um 12:47 Uhr
Hi,
nee sry, da haben wir uns missverstanden. Entweder der Datensatz ist komplett gleich oder total unterschiedlich. Ist der Primärschlüssel nicht in der Zieltabelle, dann will ich ihn einfügen! Ich habe keine Datensätze, die gleiche Primärschlüssel aber unterschiedliche Daten haben!
Bitte warten ..
Mitglied: AndreasHoster
05.08.2008 um 13:19 Uhr
Na dann entweder nach Variante A:
INSERT INTO Test1
SELECT * FROM Test where ID not in (Select ID from Test1)
oder nach Variante B:
Ein Makro machen, die Warnmeldungen ausschalten, dann <Insert into Zieltabelle select * from Quelltabelle>, die Warnmeldungen wieder einschalten.
Bitte warten ..
Ähnliche Inhalte
Datenbanken
Doppelten Datensatz suchen und Wert erhöhen
gelöst Frage von dax4funDatenbanken1 Kommentar

Moin, es gingen mir schon alle Suchbegriffe beim googlen aus um eine SQL Abfrage zu basteln die folgendes tun ...

Datenbanken
Doppelte Daten anzeigen die nicht exact doppelt sind!
gelöst Frage von ChillministratorDatenbanken26 Kommentare

Hallo zusammen, ich habe eine Tabelle GRUNDWASSER die seit über 20 Jahren täglich mit Messdaten von ettlichen Loggern gefüttert ...

Microsoft Office
Löschen von bestimmten Datensätzen
gelöst Frage von Anna2701Microsoft Office4 Kommentare

Hallöchen zusammen, ich möchte gerne einen bestimmten Datensatz aus Access mit Hilfe von SQL löschen lassen. Habe es hinbekommen, ...

Microsoft Office
Serienbrief Nächster Datensatz Wenn
Frage von Druide83Microsoft Office2 Kommentare

Hallo, ist das erste mal dass ich mit Serienbriefen in Word zu tun habe und mir fehlt auch nur ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 6 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 2 TagenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...