Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Daten aus einer Tabelle in eine andere Tabelle importieren

In SQL Server 2008 konnten Sie Ihre Goo.Goo-Tabelle in SQL Server Mgmt Studio skripten und anweisen, auch ein Skript zu erstellen, um alle Daten einzufügen, indem Sie T-SQL INSERT verwenden Aussagen. Gehen Sie zum Objekt-Explorer, klicken Sie mit der rechten Maustaste auf die Datenbank, wählen Sie „Tasks> Generate Scripts“, wählen Sie die Tabelle aus, für die Sie die Dateneinfügeanweisungen generieren möchten, und stellen Sie sicher, dass Sie diese Option hier verwenden:

Diese könnten dann auf dem anderen Server ausgeführt werden, um die Tabelleninhalte einzufügen. In diesem Fall müssten Sie sich jedoch selbst darum kümmern, eventuell vorhandene Zeilen einzufügen.

Wenn sich andererseits beide Server im selben Netzwerk befinden, könnten Sie einfach die Funktion „Linked Server“ verwenden und den Quellserver mit dem Zielserver verknüpfen und dann die MERGE-Anweisung von SQL Server 2008 verwenden, um alle Daten aus der Quelle zu importieren srever-Tabelle in den Zielserver.

Gehen Sie im Objekt-Explorer zu „Serverobjekte“, dann zu „Verknüpfte Server“, klicken Sie mit der rechten Maustaste und „Neuen verknüpften Server hinzufügen“, um eine Verbindung zwischen den beiden Servern herzustellen:

Sobald die Server verbunden sind, können Sie mit einer einfachen MERGE-Anweisung (neu in SQL Server 2008) die Daten aus diesen beiden Tabellen zusammenführen:

MERGE 
  INTO Goo.Goo as Target
  USING Foo.Foo.dbo.Foo as Source
  ON Source.ID = Target.ID
WHEN NOT MATCHED THEN
  INSERT (field1, field2, field3)
  VALUES (source.field1, source.field2, source.field3)  
WHEN MATCHED THEN
  -- do nothing
;

Lesen Sie hier mehr über die neue MERGE-Anweisung:

oder in der SQL Server 2008-Onlinedokumentation.

Markus