SQL-Syntax - Prozedur oder SQL-Script für copy von Tabellen!
Hallo zusammen,
ich bräuchte mal Hilfe bei einer Prozedur oder einem SQL-Script. Folgendes möchte ich gerne machen:
DB1 mit Tab1 auf einem ms-Sql Server. DB2 mit Tab2 auf dem gleichen ms.sql Server. In DB1 werden Daten von einem Mysql zeitgesteuert via DTS Dataensätze vom My - sql importiert. Problem ist das DTS nicht 100% funktioniert und einfach jedem importiert Datensatz immer wieder neu importiert. DB1 soll nur als zwischenspeicher dienen.
DB2 ist die eigentliche richtige DB. Nun brauche ich eine Prozedur oder SQL - Script die folgende Anforderungen erfüllt:
Prüfung welcher Datensatz in Tab2 in DB2 nicht vorhanden ist.
Kopieren der fehlende Datensätze Ihnhaltes von Tab1 in DB1 nach Tab2 in DB2.
Nach dem kopiervorgang alle Daten löschen in tab1 in DB1.
kann mir jemand von euch helfen?
danke Mike
ich bräuchte mal Hilfe bei einer Prozedur oder einem SQL-Script. Folgendes möchte ich gerne machen:
DB1 mit Tab1 auf einem ms-Sql Server. DB2 mit Tab2 auf dem gleichen ms.sql Server. In DB1 werden Daten von einem Mysql zeitgesteuert via DTS Dataensätze vom My - sql importiert. Problem ist das DTS nicht 100% funktioniert und einfach jedem importiert Datensatz immer wieder neu importiert. DB1 soll nur als zwischenspeicher dienen.
DB2 ist die eigentliche richtige DB. Nun brauche ich eine Prozedur oder SQL - Script die folgende Anforderungen erfüllt:
Prüfung welcher Datensatz in Tab2 in DB2 nicht vorhanden ist.
Kopieren der fehlende Datensätze Ihnhaltes von Tab1 in DB1 nach Tab2 in DB2.
Nach dem kopiervorgang alle Daten löschen in tab1 in DB1.
kann mir jemand von euch helfen?
danke Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 32995
Url: https://administrator.de/forum/sql-syntax-prozedur-oder-sql-script-fuer-copy-von-tabellen-32995.html
Ausgedruckt am: 07.04.2025 um 23:04 Uhr
3 Kommentare
Neuester Kommentar
Ein einfacher SQL Befehl reicht zum Kopieren:
INSERT INTO Tab2
SELECT db1.dbo.Tab1.*
FROM db1.dbo.Tab1
WHERE (ID NOT IN (SELECT ID FROM Tab2))
Wobei db1 Name der Datenbank von Tabelle 1 ist und ID der Primärschlüssel der Daten ist.
Danach kann man die Daten mit einem normalen Delete from db1.dbo.Tab1 löschen.
INSERT INTO Tab2
SELECT db1.dbo.Tab1.*
FROM db1.dbo.Tab1
WHERE (ID NOT IN (SELECT ID FROM Tab2))
Wobei db1 Name der Datenbank von Tabelle 1 ist und ID der Primärschlüssel der Daten ist.
Danach kann man die Daten mit einem normalen Delete from db1.dbo.Tab1 löschen.
Der DTS legt seine Arbeitspakete ja auf dem SQL Server ab (im Enterprise Manager unter Data Transformation Services -> Lokale Pakete).
Dort kann man mit dem GUI des DTS die Pakete bearbeiten und auch neue Tasks "SQL Ausführen" hinzufügen. Dort dann die SQL-Befehle eintragen und die Tasks über die Workflows einbinden (Task1 markieren, dann Task2 markieren (mit gedrückter STRG-Taste)), dann Kontextmenü Workflow.
Dort kann man mit dem GUI des DTS die Pakete bearbeiten und auch neue Tasks "SQL Ausführen" hinzufügen. Dort dann die SQL-Befehle eintragen und die Tasks über die Workflows einbinden (Task1 markieren, dann Task2 markieren (mit gedrückter STRG-Taste)), dann Kontextmenü Workflow.