2016-05-12 7 views
-1

Ich habe eine Tabelle mit Millionen Datensätzen.Kopieren Sie Zeilen aus 1 Tabelle und fügen Sie sie in einem anderen Server

Aber ich möchte nur die ersten 10000 Zeilen kopieren und fügen Sie es in eine andere Tabelle, die in anderen Server in SQL Server Management Studio ist.

Server1 
Db1 
Table : table1 

Server2 
Db1 
Table : table1 

Ich möchte 10000 Zeilen aus table1 in Db1 kopieren und fügen Sie ihn in Db2 von Server1 auf Server2 Tabelle1.

Ich kenne diese Abfragesyntax, aber ich weiß nicht, wie kann ich mit verschiedenen Servern beschäftigen

INSERT table1 (Col1, Col2, ..., ColN) 
    SELECT Col1, Col2, ..., ColN 
    FROM table2 
    WHERE ... 
+0

Sind sie auf der gleichen Instanz? –

+0

@ChrisPickford Bitte überprüfen Sie meine Bearbeitung –

Antwort

0

Sie müssen nur Tabellennamen mit db und Schemanamen voranstellen:

INSERT INTO db2.dbo.table1 (Col1, Col2, ..., ColN) 
    SELECT TOP 10000 Col1, Col2, ..., ColN 
    FROM db1.dbo.table2 
    WHERE ... 
+0

Ich möchte nur Top 10000 Zeilen –

+0

@devamdemo Bitte überprüfen Sie die Bearbeitung, die ich gemacht habe. –

+0

Es tut mir wirklich leid, es ist in verschiedenen Server in Sql-Management-Studio, überprüfen Sie bitte meine Bearbeitung. –

0

die Aktualisiert Beantworten Sie, wie Sie dies über einen Verbindungsserver tun würden. Mit der Anweisung 'Into Into' können Sie in einen Verbindungsserver genauso einfügen wie in eine andere Tabelle auf demselben Server, eine temporäre Tabelle, eine Tabellenvariable usw. Solange die Auswahl die richtige Anzahl von Spalten und die entsprechenden Daten enthält Arten der zweiten Tabelle der folgende Pseudo-Code funktioniert:

Insert Into LinkedServer.Db2.DbSchema.Table1 
Select Top 10000 
    Column1, 
    Column2, 
    ... 
From Db1.Table1 
Where ... 
+0

Ich möchte nur Top 10000 Zeilen –

+0

Bearbeiten der Antwort zu "Top 10000" dann in der Select-Anweisung enthalten. –

+0

Es tut mir wirklich leid, es ist in verschiedenen Server in Sql-Management-Studio, überprüfen Sie bitte meine Bearbeitung. –

1

auf Ihrem erstes Beispiel können Sie einen Verbindungsserver zu Ihrer zweiten Instanz hinzufügen und sie dann mit 4 Teil Benennung verweisen. Sie können durch eine Erweiterung der Server-Objekte Knoten, und dann mit der rechten klicken Sie auf ‚Verbindungsserver‘

einen Verbindungsserver Dann fügen Sie Ihre Abfrage aussehen würde

INSERT YourlinkedServer.YourDB.YourSchema.table1 (Col1, Col2, ..., ColN) 
    SELECT TOP 1000 Col1, Col2, ..., ColN 
    FROM table2 
    WHERE ... 

Ihre Anfrage auch durch Einsetzen der Remote-Daten in ausgeführt werden könnte eine lokale Tabelle

INSERT table1 (Col1, Col2, ..., ColN) 
     SELECT TOP 1000 Col1, Col2, ..., ColN 
     FROM YourlinkedServer.YourDB.YourSchema.table2 
     WHERE ... 

verknüpfte Server https://msdn.microsoft.com/en-GB/library/ms188279.aspx

+0

Sollte ich auf meiner Quelle oder Ziel erstellen? –

+0

Entweder ist in Ordnung.Wenn Sie es in Ihrer Quelle erstellen, können Sie aus einer lokalen Tabelle in Ihrer Quelle auswählen und in die verknüpfte Servertabelle einfügen. Wenn der Verbindungsserver an Ihrem Ziel erstellt wird, können Sie aus Ihrer Tabelle mit dem Verbindungsserver auswählen und in Ihre lokale Tabelle einfügen. – JamieA

1

Zusätzlich zu den anderen Antworten beteiligt verknüpften Servern gegeben, ca Sie n Klicken Sie mit der rechten Maustaste auf Ihre Datenbank in SSMS und verwenden Sie den Import/Export-Assistenten, um Zeilen von einem Server zu einem anderen zu verschieben.

Im Assistenten können Sie eine Abfrage angeben, die nur die obersten 10k Zeilen zurückgibt, die Sie exportieren möchten.

+0

Ja, aber ich weiß nicht, selbst wenn ich das gleiche Schema habe, wird es nicht kopiert. Sobald ich eine erfolgreiche Nachricht bekam, aber von der Quelle waren alle Daten verschwunden und als ich wieder öffnete, kamen die Daten wieder in Quelle, aber nichts im Ziel (vielleicht weil ich 10k Zeilen auswähle und es wenige Millionen Zeilen hat)? –

+0

Es funktioniert, wenn Sie es richtig machen. Leider habe ich nicht beobachtet, was du falsch gemacht hast, als du es versucht hast. –

Verwandte Themen