Veröffentlicht 7. März 200223 j Also wieder mal! ich hab hier meine Kundennummern, die wie folgt aufgebut sind: CL-00117. sie sind als varchar(20) festgelegt, allerdings nicht von mir. Ich soll diese nummer erhöhen. hab auch schon viele ideen und viele neue befehle erforscht, aber wie sage ich einem varchardings, dass es sich um eins erhöht? Falls jemand antwortet, Danke!!! Dark ach ja MSSQL 2000 ist meine grundlage
7. März 200223 j Hallo, meines Wissens nach, ist es nicht möglich Textfelder zu erhöhen. Du wird wohl irgendwie mit PHP oder einer anderen Scriptsprache den Wert aus dem Textfeld auslesen müssen und dann die letze Zahl erhöhen und dann wieder speichern. Bis dann. Frank
7. März 200223 j na super. geht es nicht vielleicht auch mit nem convert oder cast befehl? da hab ich ja ne tolle aufgabe vom cheffe gekriegt. machense ma ebent!!! Dark
7. März 200223 j willst du deinen nummer stetig um eins erhöhen oder einmalig? du kannst über ein sql-script dein char so abschneiden, dass du nur noch die zahlen hast! dann machst du über die convert-funktion aus dem char ein int... dann kannst du dein teil erhöhen wie du bock hast! nach dem erhöhen wieder als char deffinieren/convertieren un dann deine buchstaben anfügen... is ziemlich umständlich un würd ich net machen.
7. März 200223 j Egal ob umständlich oder nicht, wie geht das ??? ich baue nur recht umständliche konstrukte. liegt wohl an meinem kranken hirn. also: wie schneidet man nen char ab? es soll ab und an ein skript durchlaufen, was neue daten in meine tabelle einfügt und dann die nummern, die noch nicht gesetzt sind neu basteln, ab der höchsten vorhandenen. Danke danke schon mal Dark
7. März 200223 j select x = substring (KundenNr, 2,6) ...das heißt, das du in x den wert von kundenNr speicherst...beginnend beim zweiten buchstaben beginnend und sechsbuchstaben lang! 2 = beginn 6 = wieviele buchstaben!
8. März 200223 j es hat funktioniert. :D :D Jetzt muss ich die Daten nur wieder in varchar zurückkonvertieren und das mit in die tabelle packen. das kann ja nicht so schwer sein, nach dem rest. falls es jemanden interessiert, wie ich es gemacht habe, hier mal der quelltext declare @x int declare @z int declare @Kundennumm int declare Kundennumm_cursor cursor for select cast (SUBSTRING(Kundennumm, 4, 5) as int) from KUNDE order by Kundennumm open Kundennumm_cursor fetch next from Kundennumm_cursor into @Kundennumm set @x = (select max (cast (SUBSTRING(Kundennumm, 4, 5) as int)) as Kundennumm from KUNDE) while @Kundennumm is null begin set @Kundennumm =@x + 1 PRINT @Kundennumm set @x = @Kundennumm fetch next from Kundennumm_cursor into @Kundennumm end close Kundennumm_cursor deallocate Kundennumm_cursor go gruß Dark
8. März 200223 j Bitte waehle das naechste Mal einen passenderen Threadtitel. Nichtsaussagende Threadtitel werden gern ueberlesen.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.