Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi INSERT INTO SELECT ohne Spaltenliste (https://www.delphipraxis.net/163828-insert-into-select-ohne-spaltenliste.html)

Alex.G 18. Okt 2011 07:45

Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO

INSERT INTO SELECT ohne Spaltenliste
 
Moin!

Ich will alle Daten einer Datenbank (aus jeder Tabelle) in eine Zweite identisch aufgebaute Datenbank übertragen. Da dies in Delphi mit einer For-Schleife abläuft, kann ich keine feste Spaltenliste eintragen. Habe auch schon gegooglet und diese Variante gefunden:
Code:
INSERT INTO TestDB2.dbo.Kunden SELECT * FROM TestDB1.dbo.Kunden
Leider bekomme ich eine Exception, da keine Spaltenliste angegeben ist. Gibt es eine Möglichkeit die Spaltenliste auszulassen bzw. variabel anzugeben?

Gruß
Alex

DeddyH 18. Okt 2011 07:52

AW: INSERT INTO SELECT ohne Spaltenliste
 
Evtl. mit Delphi-Referenz durchsuchenTDataset.GetFieldNames und die Liste dann als Delphi-Referenz durchsuchenTStrings.CommaText übergeben?

Bernhard Geyer 18. Okt 2011 07:53

AW: INSERT INTO SELECT ohne Spaltenliste
 
Du müsstest erst z.B. mit einem
Code:
Select * from TestDB1.dbo.Kunden where 1=2
dir die Liste der Ergebnisspalten liefern und dann das SQL-Statement entsprechend erweitern.

Bummi 18. Okt 2011 10:05

AW: INSERT INTO SELECT ohne Spaltenliste
 
Code:
Select *
Into NewTable
From OldTable
gegf.
Code:
Select *
Into AndereDB.dbo.NewTable
From OldTable

Alex.G 18. Okt 2011 11:04

AW: INSERT INTO SELECT ohne Spaltenliste
 
Danke für die Antworten!
Was aber, wenn die Datenbanken auf verschiedenen Servern laufen?

Bernhard Geyer 18. Okt 2011 11:10

AW: INSERT INTO SELECT ohne Spaltenliste
 
Zitat:

Zitat von Alex.G (Beitrag 1131008)
Danke für die Antworten!
Was aber, wenn die Datenbanken auf verschiedenen Servern laufen?

Dann müsstest du versuchen einen (bei MS SQL Server heißt Linked Server) "Verbindungsserver" einzurichten.
Ist je nach DMBS unterschiedlich aufwändig und Fehleranfällig.

Alex.G 18. Okt 2011 11:22

AW: INSERT INTO SELECT ohne Spaltenliste
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1131011)
Zitat:

Zitat von Alex.G (Beitrag 1131008)
Danke für die Antworten!
Was aber, wenn die Datenbanken auf verschiedenen Servern laufen?

Dann müsstest du versuchen einen (bei MS SQL Server heißt Linked Server) "Verbindungsserver" einzurichten.
Ist je nach DMBS unterschiedlich aufwändig und Fehleranfällig.

Meinst Du einen "Verbindungsserver" mit Delphi einrichten?
Wie müsste ich da vorgehen?

Bernhard Geyer 18. Okt 2011 11:24

AW: INSERT INTO SELECT ohne Spaltenliste
 
Guckst du in der MSDN

Alex.G 18. Okt 2011 12:01

AW: INSERT INTO SELECT ohne Spaltenliste
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1131016)
Guckst du in der MSDN

Vielen Dank! Werde mich mal reinarbeiten :wink:

joachimd 18. Okt 2011 13:18

AW: INSERT INTO SELECT ohne Spaltenliste
 
Zitat:

Zitat von Bummi (Beitrag 1131000)
Code:
Select *
Into NewTable
From OldTable

das erstellt aber eine neue Tabelle! Ein INSERT INTO...SELECT FROM fügt in eine vorhandene ein. Ja nachdem, welcher Befehl verwendet wird und ob die Tabelle schon existiert wird beim einen oder beim anderen ein Fehler geworfen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:41 Uhr.
Seite 1 von 5  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz