rikkert Geschrieben 10. Juni 2011 Geschrieben 10. Juni 2011 Hi, ich bin mir jetzt zwar nicht sicher, ob das Thema ins .NET oder ins DB Forum gehört. Auf jedenfall möchte ich einen Insert Befehl in einem VB.NET Programm ausführen. Dafür erstelle ich ein SqlCommand und weise ihm einen CommandString und eine Connection zu. Das Problem liegt im CommandString und zwar hole ich Daten von einer Tabelle und füge sie in eine andere ein. Die Tabellen sind aber in verschiedenen Datenbanken auf verschiedenen Servern. Nun weiß ich nicht, wie ich die Tabelle auf den anderen Server angeben soll (Selber Server, verschiedene DB wär kein Problem). Der Befehl sieht in etwa so aus: INSERT INTO Tabellenname SELECT Werte FROM ??? WHERE Bedingung Die Angegebene Connection ist die, zur Zieltabelle. Aber wie hole ich die Daten aus der Quelltabelle? Habe dazu irgendwie nichts gefunden. Zitieren
CSharp92 Geschrieben 10. Juni 2011 Geschrieben 10. Juni 2011 Ich bin zwar nicht der MySQL Experte, aber ich hab es immer über eine "neue" Connection gemacht. Wie sieht denn dein Connection String aus? Ansonsten schreib dir eine Klasse, worüber du mehrere MySQL Connections erstellen kannst und sie darüber steuern kannst. Zitieren
el_pollo_diablo Geschrieben 10. Juni 2011 Geschrieben 10. Juni 2011 Spontan fallen mir hierzu drei Lösungsansätze ein: - Öffnen einer Verbindung zur Quelltabelle und einer zur Zieltabelle und dann via VB die Einträge mit Insert kopieren. Leider hast Du nicht angegeben, welchen Datenbankserver Du verwendest, so dass ich hier nur für den MS-SQL-Server sprechen kann. Er weisst verschiedene Möglichkeiten auf und ich gehe stark davon aus, dass andere Datenbanksysteme so was vermutlich noch viel besser können... - Verbinden der Datenbankserver untereinander. Hierbei legt man Linked Server an und kann danach solche Statements ausführen: INSERT INTO [iP_DES_ZIELSERVERS].[ZIEL_DATENBANK].[dbo].[ZIEL_TABELLE] SELECT SPALTEN FROM [QUELL_DATENBANK].[dbo].[QUELLTABELLE] oder umgekehrt INSERT INTO [ZIEL_DATENBANK].[dbo].[ZIEL_TABELLE] SELECT SPALTEN FROM [iP_DES_QUELLSERVERS].[QUELL_DATENBANK].[dbo].[QUELLTABELLE] - Aufbau einer Datenbankverbindung direkt im SQL-Statement: INSERT INTO [ZIEL_DATENBANK].[dbo].[ZIEL_TABELLE] SELECT SPALTEN FROM OPENROWSET ('DRIVER','CONNECTIONSTRING','SELECT SPALTEN FROM [QUELL_DATENBANK].[dbo].[QUELLTABELLE]') Zitieren
Gooose Geschrieben 10. Juni 2011 Geschrieben 10. Juni 2011 Für den MS SQL Server kannst du dir das OpenRowSet anschauen. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.