This is ugly but it works and my be of interest...
declare @cABValue char(4)
declare @iABValue int
declare @iAsciiOffset int
declare @s varchar(80)
/* Initial value */
select @cABValue='ABCD'
/* Get the offset value for integer conversion */
select @iAsciiOffset=ascii('A')-1
/* Convert ABValue to an integer */
select @iABValue
=(ascii(substring(@cABValue,1,1))-@iAsciiOffset)*power(26,3)
+(ascii(substring(@cABValue,2,1))-@iAsciiOffset)*power(26,2)
+(ascii(substring(@cABValue,3,1))-@iAsciiOffset)*26
+(ascii(substring(@cABValue,4,1))-@iAsciiOffset)
select @s='@iABValue='+convert(varchar,@iABValue)
print @s
/* Add 1 */
select @iABValue=@iABValue+1
/* Convert back to ABValue */
select @cABValue
=char(@iAsciiOffset+@iABValue/power(26,3))
+char(@iAsciiOffset+(@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))
+char(@iAsciiOffset+(@iABValue
-((@iABValue/power(26,3))*power(26,3))
-(((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2)))/26)
+char(@iAsciiOffset+@iABValue
-(@iABValue/power(26,3))*power(26,3)
-((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2)
-((@iABValue
-((@iABValue/power(26,3))*power(26,3))
-(((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2))
)/26)*26)
print @cABValue
/* Add 26 - should give ABDD */
select @cABValue='ABCD'
select @iABValue=@iABValue+26
/* Convert back to ABValue */
select @cABValue
=char(@iAsciiOffset+@iABValue/power(26,3))
+char(@iAsciiOffset+(@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))
+char(@iAsciiOffset+(@iABValue
-((@iABValue/power(26,3))*power(26,3))
-(((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2)))/26)
+char(@iAsciiOffset+@iABValue
-(@iABValue/power(26,3))*power(26,3)
-((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2)
-((@iABValue
-((@iABValue/power(26,3))*power(26,3))
-(((@iABValue-((@iABValue/power(26,3))*power(26,3)))/power(26,2))*power(26,2))
)/26)*26)
print @cABValue