Hallo zusammen,
vielen Dank für die Antworten
Leider war jetzt auf die schnelle nicht der "AHA-Effekt" dabei, der mich auf eine Lösung gestoßen hätte - das macht aber gar nichts!
ich habe leider nur ganz grobes Wissen über die Replikation beim SQL Server und habe diese auch selbst noch nicht eingerichtet.
Aber was du suchst, so glaube ich zumindest, ist eine Merge-Replikation.
Soweit ich das gelesen habe legt eine Merge-Replikation in der Masterdatenbank in jeder Tabelle eine Zusatzspalte an - Da ich allerdings auf eine Datenbank zugreife, die täglich über ein Programm gefüllt wird, müsste ich mich erst an den Hersteller wenden, ob das so einfach möglich ist.
Vielleicht. Klingt so, also ob nur Inserts und Updates repliziert werden sollen, nicht aber deletes. Dann hättest Du auf dem Replikat alle Datensätze, auch die, die auf der Quelldatenbank nach 90 Tagen gelöscht werden.
Genau. Vielleicht mal noch 1-2 Worte zur Umgebung:
Wir haben eine sehr große Datenbank. In dieser Datenbank stehen sehr viele Tabelle. Viele davon sind System-Relevant, andere sind prall gefüllt mit Wissenswertem, dass ich gerne auslesen möchte. Ich habe also jede Tabelle, in der Summe knapp 200 Stück angeschaut und nachgeforscht, ob mich die Datensätze primär interessieren oder ob ich sie nicht brauche.
Daraus entstand dann eine Auswertung von ca 20 Tabellen, die ich für mein Projekt benötige. Ich möchte nämlich am Ende des Projekts ein Wirtschaftlichkeitstool haben, dass mir alle relevanten Daten via Weboberfläche zur Verfügung stellt. Für diese Auswertung will ich noch länger in die Vergangenheit "reisen". 18 Tabellen sind immer gleich und füllen sich stetig weiter. 2 Tabellen jedoch, deren Datensätze in 90 Tagen knapp an die 5 Mio kommen, bekommen jeden Tag den 1. Tag "weggenommen". Dieser verschwindet dann in eine neue Datenbank -> Archiv. Um Platz zu sparen, werden die 2 Tabellen so präpariert, dass sie viele Informationen "verlieren" und nur noch die wichtigsten übrig bleiben. Um die Wirtschaftlichkeit jedoch zu testen, brauche ich auch Infos, die sobald der Datensatz ins Archiv gelangt, nicht mehr da sind.
Ich habe zur Zeit die 20 Datenbanken "geklont" mit einer Momentaufnahme-Transaktion, die jeden Tag um 06 Uhr läuft. Die Tabellen sind aber nur in so weit "geklont", als das sie nur noch die Infos besitzen, die ich benötige. Sprich, auch die 2 sehr großen Tabellen habe ich angepasst, damit unnütze Daten nicht zu unnötig großer Last führen (soweit die Theorie). Ob ich dann in 2 Jahren erschlagen werde von der Masse und dem Speicherplatz sei mal dahingestellt
Während des Schreibens ist mir allerdings eine Idee gekommen. Wenn doch die Tabelle immer den 1. Tag weglöscht und ins Archiv kopiert, dann müsste ich, sofern dies über MSSQL und nicht über das Programm konfiguriert wurde, doch eigentlich genau das haben was ich suche - eine inkrementelle Erweiterung der Archiv-Tabelle. Dann müsste ich Theoretisch nur das Skript kopieren und anpassen, indem ich die Archiv-Tabelle zu meiner Wirtschaftlichkeits-Tabelle mache und meine Spalten wähle, die ich für das Projekt brauche.
Ich werde das morgen mal testen, wobei ich leider der Meinung bin, dass dies über das Programm realisiert wurde. Wenn das so ist, hab ich da nicht wirklich Chancen die gleiche "Schnittstelle" zu nutzen, weil ich sonst den Hersteller beauftragen müsste.
Falls noch jemand Ideen hat, gerne her damit. Ich hatte anfangs gedacht, diese simple Möglichkeit klappt:
Select * from Tabelle
Insert * from Tabelle in Tabelle
(Das war wohl zu leicht gedacht)
Aber letzlich ist es ja so, dass wenn ich es vor dem Skript schaffe, alle Datensätze zu kopieren (ich als Mensch), dann hätte ich ja meine inkrementelle "Lösung". Ich dachte mir "Okay, wenn das so ist, dann muss es doch mit Sicherheit auch den Mensch in der virtuellen Umgebung geben, der mir das genau so macht". Eigentlich ziemlich Schade dass es nicht etwas offensichtliches von Microsoft gibt zum Thema Inkrementelle Lösung.