2017-06-07 4 views
-1

Ich habe eine Datenbank in SQL Server 2008 und die gleiche Datenbank (Sicherung) in SQL Server 2016. Alle Schema und Tabellen sind genau gleich .So kopieren Sie alle Zeilen aus einer SQL Server-Tabelle in eine Tabelle auf einem anderen SQL Server

Ich muss alle Zeilen aus einer Tabelle in SQL Server 2008 in die gleiche Tabelle in SQL Server 2016 kopieren. Wie erreichen?

+0

Sie müssen Link-Server einstellen. –

+0

oder Sie können ein Skript für dieses Tabellenobjekt (mit Daten) generieren und dasselbe Skript auf dem Zielserver ausführen. –

Antwort

0

Ihre Tabelle auf dem Zielserver erstellen mit Ihrem Scripts aus dem Skript Tabelle As/Script erstellen Schritt auf dem Zielserver, können Sie dann eine T-SQL-Anweisung ausgeben:

INSERT INTO dbo.YourTableNameHere 
    SELECT * 
    FROM [SourceServer].[SourceDatabase].dbo.YourTableNameHere 
0

Wenn es ein 1 ist -time Extract, ich würde nicht die Einrichtung eines Verbindungsservers stören, aber stattdessen würde ich die Funktion Daten exportieren in SQL Server Management Studio verwenden.

Um dies zu tun, die Source-Datenbank in SSMS der rechten Maustaste und wählen Sie dann "Aufgaben" -> "Export Data". Sie können den Assistenten verwenden, um genau anzugeben, was Sie exportieren möchten (z. B. eine oder mehrere Tabellen oder sogar Daten mit einer Abfrage), das Ziel angeben und auswählen, ob das Paket ausgeführt oder zur späteren Verwendung gespeichert werden soll. die Daten von Ziel neue DB zu bestehenden Ziel

+0

Wahr in gewisser Weise, obwohl ich festgestellt habe, dass ich oft wieder in die ursprüngliche Datenbank zurückkommen muss, um weitere Informationen auf die neue zu kopieren/zu übertragen. Eine Verbindung mit einem verbundenen Server ist eine sehr praktische Möglichkeit, dies zu tun. Obwohl Sie natürlich wissen müssen, dass die verbundenen Server weit voneinander entfernt sein können, sollten Sie normalerweise JOINs auf Tabellen zwischen ihnen vermeiden. – cars10m

+0

@ cars10 Ich mache mir mehr Gedanken über die Sicherheitsimplikationen von Verbindungsservern sowie über mögliche Sperrprobleme bei der Abfrage von Remote-Servern. Solange man sich der Nachteile bewusst ist, sollte es in Ordnung sein. Bei einem Einweg-Extrakt denke ich immer noch, dass ein Verbindungsserver wie eine Kanone ist, um eine Mücke zu erschießen. – SchmitzIT

+0

Ich nehme an, es hängt vom Anwendungsfall ab. Meine Verbindungsserver befinden sich alle in einer gemeinsamen Firewall und werden für das Geschäft innerhalb eines Unternehmens verwendet. Daher ist Sicherheit * wichtig, aber nicht so wichtig wie für öffentlich zugängliche Server. Und die Fähigkeit, schnell Daten zwischen ihnen auszutauschen, ist eine große Hilfe für mich. – cars10m

1
  1. Linked Server
  2. BCP
  3. neue DB erstellen, um die Daten auf die neue DB kopiert, Sichern, Wiederherstellen auf Zielserver als neue DB aktualisieren DB.
+0

BCP? "Beste aktuelle Praxis"? – cars10m

+0

Bulk-Copy-Programm-Dienstprogramm - natives MS SQL Server-Tool zum Exportieren/Importieren der Daten – Anton

0

Eine weitere Option, die Sie OpenRowset wie verwenden können:

SELECT * into insertTable FROM 
OPENROWSET('SQLNCLI', 'Server=ServerIP\ServerExtentionNameIfhas;Database=dbname;Uid=uname;PWD=password;' 
,'SET FMTONLY OFF;SET NOCOUNT ON;SELECT * FROM fromTable') 

diese automatically einen Tabellennamen schaffen wird, die einführbar ist und alle Zeilen hinein kopieren.

Verwandte Themen