AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Master-Detail Tabellensätze klonen [Denksportaufgabe]

Master-Detail Tabellensätze klonen [Denksportaufgabe]

Ein Thema von alzaimar · begonnen am 5. Okt 2005 · letzter Beitrag vom 7. Okt 2005
 
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Master-Detail Tabellensätze klonen [Denksportaufgabe]

  Alt 5. Okt 2005, 15:17
Datenbank: MSSQL • Version: 2000 • Zugriff über: egal
Hallo SQL-Spezis,

Ich habe eine Aufgabe (nee, keine Hausaufgabe, schaut mal aufs Alter ). Es geht ums Duplizieren von Einträgen einer Master-Detail Beziehung. Die Lösung sollte ein SQL-Skript sein (Microsoft SQL-Server Dialekt). Cursors sind verboten (weil sie lahm sind).

Gegeben sei eine Mastertabelle (die ID-Spalte ist ein Identity-Wert (also AutoInc)):
Code:
ID Name Eigenschaft
1  Fritz  1
2  Franz  2
3  Hubert 2
Die Detailtabelle sei (ID-Spalte wieder ein Identity-Wert, Verknüpfung über Detail.MasterID --> Master.ID):
Code:
ID MasterID Details
1  1        Fritz-1
2  1        Fritz-2
3  2        Franz-1
4  2        Franz-2
5  2        Franz-3
6  2        Franz-4
7  3        Hubert-1
8  3        Hubert-2
9  3        Hubert-3
Einfache Aufgabe: Klone alle Einträge (sowie die Detaileinträge) mit Eigenschaft = X. Bei X = 2 soll z.B. Franz und Hubert in der Mastertabelle und die insgesamt 7 Detaileinträge dupliziert werden.
Das Resultat wäre dann:
MASTER
Code:
ID Name Eigenschaft
1 Fritz   1
2 Franz   2
3 Hubert  2
4 Franz   2
5 Hubert  2
DETAIL:
Code:
ID MasterID Details
 1  1       Fritz-1
 2  1       Fritz-2
 3  2       Franz-1
 4  2       Franz-2
 5  2       Franz-3
 6  2       Franz-4
 7  3       Hubert-1
 8  3       Hubert-2
 9  3       Hubert-3
10  4       Franz-1
11  4       Franz-2
12  4       Franz-3
13  4       Franz-4
14  5       Hubert-1
15  6       Hubert-2
16  6       Hubert-3
Die IDs der geklonten Einträge ist egal, Hauptsache die Referenzen sind korrekt.

Ich habe eine Lösung, die allerdings in der Master-Tabelle eine Hilfsspalte verwendet ('Clone'). Geht es auch ohne? Gibt es Optimierungsmöglichkeiten?
Angehängte Dateien
Dateityp: txt sample-solution_208.txt (1,5 KB, 15x aufgerufen)
Dateityp: txt createsampletables_663.txt (1,1 KB, 9x aufgerufen)
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz