mahmoud
Goto Top

Datensatz kopieren MS SQL 2005 Express

Hallo @ All

Ich bin neu hier und hoffe das ihr mir weiterhelfen könnt

Da ich mich erst seit neuem in dem Bereich MS SQL einarbeite habe ich auch schon mit dem ersten Problem zu kämpfen.

Ich möchte von einer DB einen Datensatz Kopieren und ihn in eine zweite DB (Beide auf dem gleichen Server) einfügen.

Das ganze soll dann noch mittels update immer wieder Aktualisiert werden.

Ich hab bereits gelesen das es mit dem Insert befehl gehen könnte nur finde ich kein tutorial oder desgleichen der dieses Vernünftig erklärt.

Wie gesagt ich bin Anfänger und hab mich die letzten 4 Wochen mit Büchern und Lernvideos einiges erarbeitet.

Gibt es die möglichkeit das ganze direkt mit dem SQL Server Management Studio Express zu bewerkstelligen.

Ich hatte es auch schon mit PHP versucht :

mssql_query("INSERT INTO DB1.dbo.Customer SELECT * FROM DB2.dbo.Customer");

allerdings bringt er mir einen Fehler Ungültiger Objektname.

Ich bin für jede hilfe Dankbar.


Gruß@All

Content-Key: 162630

Url: https://administrator.de/contentid/162630

Printed on: April 25, 2024 at 14:04 o'clock

Member: Endros
Endros Mar 14, 2011 at 21:16:48 (UTC)
Goto Top
Zitat von @Mahmoud:
Da ich mich erst seit neuem in dem Bereich MS SQL einarbeite habe ich auch schon mit dem ersten Problem zu kämpfen.

Ich möchte von einer DB einen Datensatz Kopieren und ihn in eine zweite DB (Beide auf dem gleichen Server) einfügen.

Das ganze soll dann noch mittels update immer wieder Aktualisiert werden.

Ich hab bereits gelesen das es mit dem Insert befehl gehen könnte nur finde ich kein tutorial oder desgleichen der dieses
Vernünftig erklärt.

Wie gesagt ich bin Anfänger und hab mich die letzten 4 Wochen mit Büchern und Lernvideos einiges erarbeitet.

Gibt es die möglichkeit das ganze direkt mit dem SQL Server Management Studio Express zu bewerkstelligen.

Ich hatte es auch schon mit PHP versucht :

mssql_query("INSERT INTO DB1.dbo.Customer SELECT * FROM DB2.dbo.Customer");

allerdings bringt er mir einen Fehler Ungültiger Objektname.

Ich bin für jede hilfe Dankbar.


Gruß@All


Option 1:
Falls für DB1 die Option "select into" aktiviert ist, dann kannst du es mit einem
select * into db1.dbo.Customer from db2.dbo.Customer
probieren.

Dabei wird dann in DB1 die noch nicht vorhandene Tabelle neu erstellt. Jedoch nur "halbherzig": ohne primary key, ohne indizes, ohne andere Constraints etc.


Option 2:
Du legst in DB1 die Tabelle Customer an (darauf bezieht sich höchstwahrscheinlich deine Fehlermeldung: Tabelle existiert nicht...)
Anschließend machst du am besten ein *präzises* insert:
insert into db1.dbo.Customer (Spalte1, Spalte2, Spalte3, Spalte4, ...)
select Spalte1, Spalte2, Spalte3, Spalte4, ... from db2.dbo.Customer where (Bedingung für den oder die Datensätze)
Mit präzise meine ich, wie du vielleicht erahnen kannst, die exakte Auflistung der Spalten in der gewünschten Reihenfolge. Das "hilft", wenn man später mal eine der Tabellen ändert und die entsprechende Anpassung der zweiten Tabelle vergißt ; oder wenn die Zieltabelle z.B. nur eine "Light-Version" der Quelltabelle sein soll oder oder oder.

Falls du mit Primary Key Constraints arbeitest (hoffentlich!) würde ich empfehlen, vorher in der Zieltabelle "vorsichtshalber" die relevanten Datensätze zu löschen:
delete from db1.dbo.Customer where (Bedingung...)
Member: filippg
filippg Mar 14, 2011 at 22:01:12 (UTC)
Goto Top
Hallo,

wenn ich das nicht falsch in Erinnerung habe, werden DBs von Tabellen in T-SQL mit .. getrennt. Also: DB1..Customer (evtl. auch DB1..dbo.Customer).
Ja, und machen kann man das schon im Mgmt Studio, das ist zum lernen mit Sicherheit sehr, sehr viel praktischer als mit selbst gestrickten PHP-Querys. Den Baum entsprechend aufklappen, eine der Tabellen auswählen, rechte Maustaste Script Tabel as -> Select.. to -> New Query Window (oder so ähnlich...). Außerdem kann man dann noch den... hm... (ich glaube Query Editor heißt das grafisch unterstützte Tool) einblenden lassen. Rechte Maustaste in das Abfragefeld und Show Pane... auswählen. Oder oben in der Menüleiste auf das entsprechende Symbol.

Gruß

Filipp

PS: eine meiner Meinung nach wirklich gute & kompakte Einführung in Datenbanken findet sich unter http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/index.htm. Schwerpunkt liegt hier definitiv nicht auf SQL (als Abfragesprache) sondern auf Designgrundlagen relationaler DBs und Relationenalgebra. Sollte man sich aber vor der ersten Tabelle mal anschauen, dann tut man sich wirklich leichter mit allem folgenden.