Datenbank: MSSQL • Version: 2005 • Zugriff über: ADO
Datenbankübernahme
Hallo!
Ich habe folgendes szenario: Eine Tabelle: Nummer Barcode 3001 30011001 3001 30011002 3001 30011003 3001 30011004 Jetzt möchte ich diese Tabelle von einer Datenbank in eine eigen Tabelle in einer eigenen Datenbank übernehmen. Wie kann ich das SQL mäßig durchführen? |
AW: Datenbankübernahme
Mit
Code:
INSERT
|
AW: Datenbankübernahme
Dieser SQL-Befehle ist mir schon klar... aber ich schaffe es das ich die Nummer 3 mal eintrage aber wie den Barcode?
machs mit einer Schleife |
AW: Datenbankübernahme
SQL-Code:
INSERT INTO NeueTabelle(Nummer, Barcode)
SELECT Nummer, Barcode FROM AlteTabelle |
AW: Datenbankübernahme
Okay.. vlt hab ich mich nicht wohl richtig ausgedrückt.
Ich habe zwei unterschiedliche Datenbanken. Das heißt in der einen Datenbank ist die Tabelle aus der ich die werte lesen möchte und in der anderen Datenbank ist meine eigene Tabelle woo ich die gelesenen werte eintragen möchte. Edit: Die Bezeichnungen für die Nummer und den Barcode lauten auch anders. |
AW: Datenbankübernahme
dann hol' doch die Daten mit einem Select ab und schreib sie mit dem Insert.
Gruß K-H |
AW: Datenbankübernahme
Zitat:
|
AW: Datenbankübernahme
Wenn DeddyH etwas mehr Empathie an den Tag legen würde, hätte er es aber sicher besser machen können.
;) |
AW: Datenbankübernahme
So mal kurz dahin getippt und auf das Wesentliche reduziert:
Delphi-Quellcode:
SourceQuery.SQL.Text := 'SELECT Nummer, Barcode FROM ABarcodeTable';
DataSource.DataSet := SourceQuery; TargetQuery.SQL.Text := 'INSERT INTO MyBarcodeTable ( MyNumber, MyBarcode ) VALUES ( :Nummer, :Barcode )'; TargetQuery.DataSource := DataSource; TargetQuery.Prepared := True; SourceQuery.Open; while not SourceQuery.EOF do begin TargetQuery.ExecSQL; SourceQuery.Next; end; SourceQuery.Close; TargetQuery.Prepared := False; |
AW: Datenbankübernahme
Wenn die Datenbanken auf den gleichen Server laufen kannst Du direkt per SQL durchgreifen, wenn nicht kannst Du dies ebenfalls falls Du auf die Importdatenbank einen Verbindungsserver einrichten kannst.
|
AW: Datenbankübernahme
Zitat:
An Tagen wie diesem frage ich mich manchmal, wieso ich mir das eigentlich antue. |
AW: Datenbankübernahme
|
AW: Datenbankübernahme
:lol: Thx
|
AW: Datenbankübernahme
Es geht auch ohne Programmierung:
1. Daten in Excel exportieren 2. Verkettungsbefehl und daraus den Insert erstellen 3. Per SQL_Script einlesen. Fetig :-) |
AW: Datenbankübernahme
So nach langem Probieren hab ichs nun selber geschafft.
Und zwar mit den Eigenschaften First und Next von der Query und einer For-Schleife kann ich nun die Barcodes ach dazuschreiben. Jetzt hätte ich eine andere Frage. Und zwar ich möchte für meine Einträge in der Tabelle eine fortlaufende ID... Gibt es da nicht einen Datentyp der beim automatischen Eintrag fortlaufend Nummeriert? |
AW: Datenbankübernahme
Ja.
|
AW: Datenbankübernahme
Danke, aber ganz blöde Frage Wie erstelle ich so eine IDENTITY-Saplte in meiner Datenbank?
|
AW: Datenbankübernahme
Zitat:
Man kann sich aber bestimmt auch durch die Dokumentation des SQL-Servers durcharbeiten |
AW: Datenbankübernahme
Es ist mir ein Rätsel, wieso man nicht das SQL Management Studio des SQL-Servers verwendet, um
* Eine Tabelle einer fremden Datenbank in die eigene zu überführen, bzw. zu importieren. * Eine Spalte als Identity zu definieren. * F1 drücken und sich durcharbeiten oder noch einfacher: * Einfach mal Google verwenden Um Daten einer beliebigen Datenquelle zu importieren, kann man den Spezifizierer "OPENROWSET" verwenden, der über ADO eine beliebige Quelle anzapft. Dann geht das ganz ohne Delphi, und zwar in etwa so:
Code:
select * into myLocalTable from OPENROWSET
insert into mylocalTable (col1,col2,col3) select (externalcol1, externalcol2, externalcol3) from OPENROWSET |
AW: Datenbankübernahme
Zitat:
Wenn aber diese Import-Vorgänge regelmäßig vorkommen, dann eher nein ;) |
AW: Datenbankübernahme
Zitat:
PS: Eine Frage pro Thread, sonst wirds unübersichtlich! |
AW: Datenbankübernahme
Zitat:
Gruß K-h |
AW: Datenbankübernahme
[QUOTE=Sir Rufo;1140721]
Zitat:
Ansonsten, wie ich schon sagte, über OPENROWSET auf die fremde Datenquelle zugreifen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz