Entwickler-Ecke
Datenbanken (inkl. ADO.NET) - TSQL: Automatisch Alphabetisch hochzählen
timonsp - Do 12.01.12 16:04
Titel: TSQL: Automatisch Alphabetisch hochzählen
Hallo Zusammen!
Vielleich kann mir hier jemand weiterhelfen, googlen war erfolglos. :(
Ich habe eine Tabelle, welche über eine Spalte "Version" verfügt. Die Versionnummern sind alphabetisch realisiert. Jetzt möchte ich diese Versionnummern automatisieren, d.h. jedesmal wenn ein Datensatz geändert wird, soll eine neue Version geschrieben werden.
Die Beschriftung ist so vorgegeben: A,B,C,D ..., Z AA,AB,AC,AD, ..., AZ BA,BB,BC usw.
Die Datenstruktur ist bereits gegeben und darf nicht verändert werden.
Ich habe es mit char("number") versucht, jedoch wenn es um zweistellige Versionenzeichen geht, bin ich überfordert.
Hat jemand eine Idee hierzu?
Danke im Voraus!
Gruss Timon
Ralf Jansen - Do 12.01.12 17:24
Zitat: |
Die Datenstruktur ist bereits gegeben und darf nicht verändert werden. |
Ich darf trotzdem anmerken das das eigentlich großer M**t ist?
Ich würde eine Stored Function vorschlagen z.B. so
SQL-Anweisung
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| CREATE FUNCTION ufn_NextVersion(@version varchar(10)) RETURNS varchar(10) AS BEGIN IF (@version is NULL) OR (LEN(@version) = 0) RETURN 'A' -- oder @version IF RIGHT(@version, 1) = 'Z' RETURN @Version + 'A' ELSE RETURN SUBSTRING(@version, 0, LEN(@version)) + CHAR(ASCII(RIGHT(@version, 1))+1) RETURN 'A' -- wird nie erreicht END |
Dann
SQL-Anweisung
1:
| UPDATE TABLE MeineLiebeTabelle SET .... Blah .... , Version = dbo.ufn_NextVersion(Version); |
Ähnlichen Code solltest du aber genauso in einem Instead Of Trigger beim updaten benutzen können.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!