Zum Inhalt springen

Spalte in andere Tabelle verschieben?


Gooner85

Empfohlene Beiträge

Ich möchte eine komplette Spalte (mit den enthaltenen Daten) in eine andere Tabelle zu verschieben.

Ist das möglich?

Beide Tabellen liegen auf der gleichen Datenbank. Ich verwende MS SQL Server 2005.

ja

- Neues Attribut in Zieltabelle erstellen (Dies ist Oracle Syntax...aber sollte nicht allzu schwirig sein, dies anzupassen....:


ALTER TABLE Zieltabelle

 ADD (

  NeuesFeld VARCHAR2 (20)

 )

/

- Kopieren der Werte aus der Sourcetable in die Zieltabelle


UPDATE Zieltabelle SET NeuesFeld =Select AltesFeld from Sourcetable

where Sourcetable.id=Zeiltable.id

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die schnellen Infos.

Mit folgender Query hat es funktioniert:

INSERT INTO Buchungen

(ID, CheckIn, CheckOut)

SELECT ID, CheckIn, CheckOut

FROM Personen

Eigentlich wollte ich nur die Spalten CheckIn & CheckOut verschieben, jedoch traten dadurch wieder Probleme mit der NULL-Behandlung in der ID-Spalte meiner Zieltabelle (Buchungen) auf. So hab' ich jetzt eben meine IDs auch noch mitverschoben.

Lässt sich das auch vermeiden?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke für die schnellen Infos.

Lässt sich das auch vermeiden?

- Ich weiss es nicht, diese Frage kannst nur du beantworten ? Sind die ID's als PK definiert ? Dann wirst du :

- Entweder die ID's mitnehmen müssen

- oder auf der Zieltabelle neu generieren lassen

Ist die ID in der Zieltabelle der FK auf die Sourcetabelle, dann musst du sie natürlich mitnehmen.

(Im übrigen dachte ich, dass die Daten auf der zieltabelle schon existieren, deswegen das UPDATE-Statement....

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

- oder auf der Zieltabelle neu generieren lassen

weißt Du vielleicht wie man das in der Query macht?

(Im übrigen dachte ich, dass die Daten auf der zieltabelle schon existieren, deswegen das UPDATE-Statement....

Nein, die Daten sollen ebenfalls aus der Spalte, die ich verschiebe, mit übernommen werden!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, die obige Oracle-Syntax hat mich schon etwas weitergebracht. Einen Versuch ist es also Wert ;)

Ja bitte, kein Problem (Ich glaube aber zu wissen, das MSSQL dies nicht so unterstützt, aber eben....



CREATE SEQUENCE mySequence

  INCREMENT BY 1

  START WITH 1

  MINVALUE 1

  MAXVALUE 999999999999999999999999999

  NOCYCLE

  NOORDER

  CACHE 20

/


INSERT in myTable (ID,Attribute1,Attribute2,xxxxx) VALUES (mySequence.Nextval,'Value1','Value2',xxxx)

/


COMMIT;


Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...