Daten von Datenbank zu Datenbank kopieren

pelesla

Benutzer
Beiträge
16
Ich habe zwei DB's und will die Daten aus der DB1 in DB2 kopieren.

Einfache Lösung wäre so:
Code:
INSERT INTO table2
(column_name(s))
SELECT column_name(s)
FROM table1;


Nun habe ich das Problem, dass ich sicherheitshalber sämtliche column-names aufführen muss.
Ich habe sehr viele Tables und die haben viele Felder.

Gibt es eine Lösung das ganze zu automatisieren?
 
Werbung:
Es gibt ziemlich viele Wege, die aber je nach Szenario unterschiedlich sinnvoll sind.

Soll das ganze einmalig oder regelmäßig geschehen?
Welche MSSQL Version / Lizenz hast du?
 
Danke für deine Hilfe! Hab es bereits geschafft:

Code:
declare @list varchar(max)
declare @list2 varchar(max)
declare @sql varchar(max)

select @list = coalesce(@list + ', ' ,'') + name from db1.sys.syscolumns where id = OBJECT_ID('t1')
select @list2 = coalesce(@list2 + ', ' ,'') + name from db2.sys.syscolumns where id = OBJECT_ID('t2')

set @sql = 'INSERT INTO db1.dbo.t1(' + @list + ')
                  SELECT ' + @list2 + '
                  FROM db2.dbo.t2'
                 
exec (@sql)


FRAGE:

Gibt es nun eine Möglichkeit das Ganze zu automatisieren.
Heisst: Kann man einen Loop generieren, dass der Insert in allen tables in der DB1 und DB2 (inkl. den korrekten columns) durchgeführt wird?
 
Klar, mit einer WHILE Schleife und der Abfrage der Tabellennamen aus sys.tables kannst du alle Tabellen durchlaufen und EXEC() mehrfach aufrufen.
 
Werbung:
Zurück
Oben