Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 12262 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
Microsoft Office
gelöst Automatisch entscheiden ob prozentual oder fest anzahl von Datensätze (7)

Frage von hugothemagpie zum Thema Microsoft Office ...

Microsoft Office
Serienbrief Nächster Datensatz Wenn (2)

Frage von Druide83 zum Thema Microsoft Office ...

Datenbanken
Access Datenbank wie am einfachsten Datensätze aufbereiten (5)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows 10
Windows 10 im Unternehmen? (26)

Frage von zorlayan zum Thema Windows 10 ...

LAN, WAN, Wireless
Ping u. DNS geht am Rechner nicht mehr (19)

Frage von Kuemmel zum Thema LAN, WAN, Wireless ...

Festplatten, SSD, Raid
Raid 1 2 SSD mit Windows Server 2016 (17)

Frage von jaywee zum Thema Festplatten, SSD, Raid ...