INSERT FROM mit "order by" [GELOEST]

Advantage Database Server

Moderator: Moderatoren

Antworten
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

INSERT FROM mit "order by" [GELOEST]

Beitrag von UliTs »

Hallo allerseits,

ich dupliziere mittels

Code: Alles auswählen

insert into TableName( Id,Feld2Name2,Feld3Name )
select( NaechsteId(),Feld2Name,Feld3Name ) from TableName
where ...
Datensätze. Dabei ist NaechsteId() eine Funktion, die die nächste freie Id zurückgibt.
Blöderweise muß die neue Id auf die gleiche Weise aufsteigend sein wie die der zu duplizierenden Datensätze :( .

Gibt es beim ADS eine Möglichkeit, die Reihenfolge in der die Datensätze dupliziert werden, zu beeinflussen?
Zuletzt geändert von UliTs am Fr, 10. Apr 2015 10:43, insgesamt 1-mal geändert.
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
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: INSERT FROM mit "order by"

Beitrag von nightcrawler »

Das ist bei Standard-SQL (und ADS) nicht vorgesehen. Du könntest dir aber mit einem Script behelfen:

Code: Alles auswählen

declare @src cursor as select rowid as "myrowid" from mytable order by xyz;
open @src;
while fetch @src do
  insert into TableName( Id,Feld2Name2,Feld3Name ) 
    select( NaechsteId(),Feld2Name,Feld3Name ) 
      from TableName
        where rowid=@src.myrowid;
end while;
close @src; 
--
Joachim
Joachim Dürr Softwareengineering
https://www.jd-engineering.de
UliTs
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2828
Registriert: Fr, 10. Feb 2006 9:51
Wohnort: Aachen
Hat sich bedankt: 259 Mal
Danksagung erhalten: 12 Mal
Kontaktdaten:

Re: INSERT FROM mit "order by"

Beitrag von UliTs »

Hallo Joachim,

vielen Dank für Deine Antwort. Ich hätte nicht gedacht, dass es dafür tatsächlich eine Lösung geben könnte 8) .

Uli
-------
Mitglied XuG Cologne
Mitglied XuG Osnabrück
Antworten