2016-03-31 6 views
0

Wie kann ich mehrere Tabellen zwischen SQL-Servern (aber nicht jede Tabelle der Datenbank) verschieben?Verschieben mehrerer Tabellen zwischen MS SQL-Servern mit nur Skript

Ich habe eine Liste der Tabellen, die kopiert werden müssen. Gibt es eine Möglichkeit, eine Enumeration (oder etwas Ähnliches) aus dieser Liste zu erstellen und die Elemente zu durchlaufen, um ein dynamisches Skript zu erstellen?

Ich habe bereits eine Verbindung zum Verbindungsserver erstellt, das Skript sollte mit dieser Methode funktionieren. Identity einfügen muss auch im Skript verwendet werden.

Was ist der einfachste Weg, dies zu tun?

+0

haben Sie untersucht mit dynamic sql und dann durchlaufen Sie Ihre Liste der Tabellen – Chris

+0

Könnten Sie nicht nur Skripte w/SSMS für Schema und Daten generieren? – Kritner

Antwort

0

Sie sollten sich nur um die @dest- und @tables kümmern.

declare @tables varchar(MAX) 
declare @t varchar(50) 
declare @sql varchar(MAX) 
declare @dest varchar(80) 

set @dest = 'myNewServer.newDb..'; 
set @tables = '[Table1], [Table2]' 


while len(@tables) > 0 
begin 
    --print left(@tables, charindex(',', @tables+',')-1) 
    set @t = left(@tables, charindex(',', @tables+',')-1) 
    set @sql = 'select * into "+ @dest + @t + ' from '[email protected] 
    set @tables = stuff(@tables, 1, charindex(',', @tables+','), '') 

    execute(@sql) 

end 

Diese Methode kopiert all tabes Daten, die Erhaltung IDs, weil:.

“... dies nicht der anderen Metadaten kopiert als die Spalteninformationen (Namen & Datentypen) So wird es Ich habe keine Sicherheitsberechtigungen, Indizes, Trigger, Constraints usw. Das oben erwähnte Management Studio-Beispiel hat das gleiche Problem. " von https://msdn.microsoft.com/en-us/library/aa337553.aspx

+0

Brunnen Ziel konnte leicht in der gleichen Weise wie die Tabelle von String – Chris

+0

funktioniert funktioniert wie ein Charme, danke! Gibt es Ratschläge zum Beibehalten der Identitätseigenschaften der Tabellen? – Dunowen

+0

Diese Methode kopiert nur Namen und Datentypen von Spalten. Keine anderen Metadaten Keine Kontraktionen, keine Schlüssel, Fremdschlüssel. – Excelan