Einzelnen Beitrag anzeigen

Furtbichler
(Gast)

n/a Beiträge
 
#41

AW: INSERT INTO SELECT ohne Spaltenliste

  Alt 22. Okt 2011, 10:01
Man kann in TSQL ganz einfach VON einem entfernten Server Daten holen, ohne einen Verbindungsserver einzurichten: Statt dem Tabellennamen nimmst du "OPENROWSET", also z.B.
Code:
Insert into MyLocalTargetTable
  Select *
  From OPENROWSET
    (
    'SQLNCLI',
    'Server=MyRemoteSourceServer;Trusted_Connection=yes;...',
    'SELECT * from MYRemoteSourceTable'
    )
Das Kommando führst Du auf dem Server aus, auf dem sich die Zieltabelle befindet.

Wenn in der Zieltabelle IDENTITY-Spalten enthalten sind, dann musst Du die Feldliste (ohne die die IDENTITY-Spalten) noch hinzupacken, ansonsten bekommst Du eine Exception, und ich glaube, das ist das eigentliche Problem. Denn das der Befehl "INSERT INTO Target SELECT * FROM Source" funktioniert schon, nur eben nicht, wenn IDENITY-Spalten vorhanden sind.

Alternativ könnte man noch mit DTS arbeiten, aber das ist ein wenig kompliziert.
  Mit Zitat antworten Zitat