Rename einer Tabelle

Advantage Database Server

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Rename einer Tabelle

Beitrag von Manfred »

im Architekten kann man eine Tabelle umbenennen.Geht sowas auch über einen SQL Befehl?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Code: Alles auswählen

CREATE TABLE <cNeuerName> ... FROM <cAlterName>
danach

Code: Alles auswählen

DROP TABLE <cAlterName>
Einen Rename-Befehl gibt es meines Wissens nicht.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Ah. Ich sehe gerade, dass es das ALTER TABLE-Statement auf einigen Servern mit der RENAME TO-Option gibt, aber ob das mit dem ADS geht, weiß ich nicht. DROP TABLE kennen allerdings auch nicht alle Server.

Code: Alles auswählen

ALTER TABLE <cAlterName> RENAME TO <cNeuerName>
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

so hatte ich es auch zuerst. Bin aber dann über den Architekten darauf gestossen und hatte auch im Internet gernerell nach einem SQl Befehl dafür gesucht. mySQL scheint das wohl zu können und eshalb meine Frage hier. Aber vielleicht kann Joachim da etwas genaueres zu sagen?

warst etwas schneller als ich
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Oracle und einige andere können das auch, aber Microsoft SQL z.B. nicht. Ich würde mit CREATE TABLE FROM, einem INSERT und dann DROP TABLE arbeiten.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

ok, es geht darum eine Strukturänderung zu vollziehen. Meine bisherige Routine war für lokale DBF geschrieben und verschiebt die aktuelle Tabelle in ein Tempverzeichnis und erzeugt im regulären Verzeichnis die neue tabelle mit neuer Struktur. Dann wird aus der umbewegten Tabelle übernommen. DAbei werden aber alle Felder und INhalte angepaßt. Es wird also auch konvertiert, da wo es möglich ist. Danach wird dann die alte Tabelle gelöscht und gut ist. Und das geht mit den pauschalen Routinen nicht. Umbenennen ist jetzt für mich die schnellste Lösung, besonders wenn die Tabellen recht groß sind. Das Übernehmen der DAten ist dann schon im Fall der Fälle lang genug.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Aber Spaltenänderungen gehen über ALTER TABLE sehr viel einfacher. Dafür ist das gedacht - neue Spalten, veränderte Spalten, gelöschte oder umbenannte Spalten.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

hm,
es geht darum DAten zu konvertieren. Die alte Spalte ist numerisch und die neue (mit gleichem Namen) ist z.B. Charakter. Da muß konvertiert werden. Meine Routine kann im gewünschten Rahmen alles zu allem umwandeln. Gibt es da auch was in SQL? Glaube ich eher nicht. Bin aber gerne bereit zu lernen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Jan »

Manfred,

Deine Routine ist ja Deine Routine, nicht Xbase++. Es spricht also nichts dagegen sowas auch von DBE auf SQL umzuschreiben. Das sollte ja in drei Schritten gehen: ALTER TABLE ADD CLUMN neueSpalte - kopiere Daten aus alteSpalte rüber in neueSpalte inkl. Konvertierung - ALTER TABLE DROP COLUMN alteSpalte

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

:-k
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Code: Alles auswählen

ALTER TABLE <cTableName> MODIFY COLUMN <cColumnName> <xColumnDataType>
Schau einfach mal den Link an, Manfred, da wird sehr viel erklärt. Gute Basics für den Umstieg auf SQL.
Herzlich,
Tom
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Jan »

Tom,

kann ADS denn MODIFY COLUMN? In der Hilfe zum ADS 12 finde ich das nicht.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Keine Ahnung, Jan. Ich benutze den ADS nicht mit SQL.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Tom »

Ich sehe in den Docs sowas:

Code: Alles auswählen

ALTER TABLE orders ALTER COLUMN price price curdouble
Scheint also zu funktionieren, heißt nur nicht MODIFY COLUMN.
Herzlich,
Tom
Benutzeravatar
nightcrawler
1000 working lines a day
1000 working lines a day
Beiträge: 650
Registriert: Di, 24. Apr 2012 16:33
Wohnort: 72184 Weitingen
Hat sich bedankt: 3 Mal
Danksagung erhalten: 96 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von nightcrawler »

um auf die Eingangsfrage zurückzukommen: Ja (es gibt was) und ja (der Joachim weiß es - zumindest weiß er, wo er nachschlagen soll).

Code: Alles auswählen

EXECUTE PROCEDURE sp_RenameDDObject( 'oldtable', 'newtable', 1 /* ADS_DD_TABLE_OBJECT */, 1 /* ADS_KEEP_TABLE_FILE_NAME */ );
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

glücklicherweise bin ich nicht der einzige, der nicht weiß wo man nachschlagen muß. :badgrin:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Jan »

http://devzone.advantagedatabase.com/dz ... index.html

Navigation: Advantage SQL > System Procedures > Procedures > sp_RenameDDObject
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Rename einer Tabelle

Beitrag von Manfred »

ich hatte das schon gefunden heute nachmittag, wußte damit aber nichts anzufangen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Rename einer Tabelle

Beitrag von Jan »

Die devzone habe ich schon ewig in meinen Lesezeichen drin. Aber nach dieser Funktion hatte ich so jetzt nicht gesucht gehabt heute nachmittag. Ich hatte nach Toms MODIFY gesucht, und das dann natürlich nicht gefunden.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Antworten