zeroblue2005
Goto Top

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

Content-Key: 32995

Url: https://administrator.de/contentid/32995

Ausgedruckt am: 28.03.2024 um 22:03 Uhr

Mitglied: AndreasHoster
AndreasHoster 23.05.2006 um 08:32:38 Uhr
Goto Top
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.
Mitglied: zeroblue2005
zeroblue2005 23.05.2006 um 12:23:46 Uhr
Goto Top
danke für die antwort. jedoch bin ich damit ein wenig überfordert soll ich das mit dem SQL -QA machen? Ich wollte das eigentlich mit den DTS machen und dann zeitgesteuert.

Kann du deine kleine Anleitung etwas ausführen?

danke Mike
Mitglied: AndreasHoster
AndreasHoster 23.05.2006 um 15:26:20 Uhr
Goto Top
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.