labelle Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 Hallo Leute, Ich möchte Daten in meiner SQL Tabelle automatisch importieren, aber die Informationen, die schon da sind sollen nicht überschrieben werden oder doppelt vorkommen. Update kann ich leider nicht benutzen, weil ich mehre Tabelle habe und nicht weiss welche Informationen in der Datei neue sind. Kann jemand helfen? Danke Labelle
bigpoint Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 Hallo Leute, Ich möchte Daten in meiner SQL Tabelle automatisch importieren, aber die Informationen, die schon da sind sollen nicht überschrieben werden oder doppelt vorkommen. Update kann ich leider nicht benutzen, weil ich mehre Tabelle habe und nicht weiss welche Informationen in der Datei neue sind. Kann jemand helfen? Danke Labelle Was für ein DB
Amstelchen Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 setzte auf die tabelle(n) einen zusammengesetzten primärschlüssel ... daten die innerhalb des schlüssels doppelt vorkommen, werden verworfen. s'Amstel
labelle Geschrieben 20. Januar 2006 Autor Geschrieben 20. Januar 2006 was ist ein zusammengesetzten primärschlüssel ?
Aquano Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 ein eindeutiger(!) fachlicher oder technischer Schlüssel, oder die Mischung aus beiden, über 2 oder n Tabellenspalten
bigpoint Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 setzte auf die tabelle(n) einen zusammengesetzten primärschlüssel ... daten die innerhalb des schlüssels doppelt vorkommen, werden verworfen. s'Amstel das macht leider das laden nicht unbedingt schneller @labelle um wieviel Datensätze handelt es sich denn ??
Amstelchen Geschrieben 20. Januar 2006 Geschrieben 20. Januar 2006 das macht leider das laden nicht unbedingt schneller schon richtig. bei kleinen datenmenge wäre das egal, eine grössere anzahl an rows (in der dimension > 100.000) wäre natürlich anlass, das einem benchmark zu unterziehen. andere faktoren wäre z.b. noch, ob die datentabellen partitioniert sind (ähnlich oracle, aber nicht so komfortabel). das ist auch nur eine mögliche lösung von vielen gangbaren. beispielsweise liesse sich auch bei inserts mittels NEWID() ein wert vom typ uniqueidentifier mitnehmen: DECLARE @MEINEEINDEUTIGEZEILE uniqueidentifier SET @MEINEEINDEUTIGEZEILE = NEWID() INSERT MeineSpalte1, MeineSpalte2, MeineSpalteN VALUES (@MEINEEINDEUTIGEZEILE ,'bli', 'bla', 'blu') s'Amstel
Ramses_PyramidenVerleih Geschrieben 23. Januar 2006 Geschrieben 23. Januar 2006 @amstelchen: Dieser Code wird aber zu Fehlern führen, da du nur 3 Spalten mit 4 Werten füllen willst. Ausserdem - korrigiere mich, wenn ich daneben liege - wird somit jedesmal eine neue ID für den Datensatz angelegt. Dadurch eleminiert man aber nicht doppelte Datensätze!
Amstelchen Geschrieben 24. Januar 2006 Geschrieben 24. Januar 2006 Dieser Code wird aber zu Fehlern führen, da du nur 3 Spalten mit 4 Werten füllen willst. Ausserdem - korrigiere mich, wenn ich daneben liege - wird somit jedesmal eine neue ID für den Datensatz angelegt. Dadurch eleminiert man aber nicht doppelte Datensätze! mein angegebenes sql war pseudocode und sollte halt eine weitere möglichkeit von automatischer wertegenerierung nennen - d.h. datensätze zu generieren, die automatisch mit einem uniquen feld ausgestattet werden. ich hab deshalb auch MeineSpalteN angegeben, was heissen soll, es können beliebige viele INSERT-spalten definiert werden, die natürlich auch die korrespondierende anzahl an VALUES haben müssen. die tatsache, dass NEWID() immer andere werte generiert, setzt natürlich voraus, dass damit nur die datenbasis gefüllt wird, und subsequente INSERTS schon eine ID (von datentyp uniqueidentifier) haben müssen. s'Amstel
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden