请教:如何产生一个带字母的序列号?

longpei312 2004-10-20 03:23:44
大家好:
表中有一个字段要系统产生一个值,这个值的规律如下
A00001,A00002,......A99999
B00001,B00002,......B99999
C00001,C00002,......C99999
该值前面第一个字母由外部提供,后面的序列由系统产生,然后组合到一起后加入这个字段里面,
不知道该如何做到呢???
...全文
219 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
longpei312 2004-10-26
  • 打赏
  • 举报
回复
to kongxiangfa(聪明一休) :
你好,我把这条语句执行了一次,但是不能执行成功呀!你试过吗?
kongxiangfa 2004-10-22
  • 打赏
  • 举报
回复
来源是:serialno numeric(20) identity,

这是因为序列号自到增长错误导致的.

建表时,加一句话:with identity_gap = 1就OK

不过该表已经出现这种情况后,只有先备份数据再重建表啦!!!
jeah 2004-10-22
  • 打赏
  • 举报
回复
能顶就顶吧
fetch 2004-10-21
  • 打赏
  • 举报
回复
Transact-SQL User’s Guide中好像有介绍,你看看。我暂时没有。
longpei312 2004-10-21
  • 打赏
  • 举报
回复
谢谢这位大侠:
想再请教一下,我在数据库中建了这样一个表,
create table test(
serialno numeric(20) identity,
name varchar(20),
age integer)
执行:
insert into test
(name,age)
values
('liming',20);
insert into test
(name,age)
values
('wangtao',25);
这时候数据库中的值都是正常的:
serialno name age
1 liming 20
2 wangtao 25
现在我把服务器重启一下后,再执行:
insert into test
(name,age)
values
('xiaosun',18);
发现表test中的数据异常
seiralno name age
1 liming 20
2 wangtao 25
5000000000001 xiaosun 18
下一次再重启服务器,序列又从一个更大的数开始增加了,不知道是是么原因,请各位大侠指点
fetch 2004-10-20
  • 打赏
  • 举报
回复
好像没有这种功能,只能靠自己程序实现。

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧