当前位置:编程学习 > C#/ASP.NET >>

简单问题,增加流水号

表 Pr_Jc
在用户插入记录的时候,在Pr_JcNum列自动加入流水号。

流水号的规则

如果服务器时间为07年,那么就应该是

070001S
070002S
070003S
070004S
....... --------------------编程问答-------------------- 要保证流水号唯一不重复。 --------------------编程问答-------------------- 最好用触发器,如果简单的表可以这样完成

create table Pr_Jc
(
id int identity, 
Pr_JcNum as right(Convert(varchar(4),year(getdate())),2) + REPLICATE('0',(4-len(CONVERT(varchar(4),id))))+CONVERT(varchar(4),id) + 'S',
Name varchar(20)
)

insert into pr_jc(name) values('test')

select * from pr_jc --------------------编程问答-------------------- 帮你顶 --------------------编程问答-------------------- 有个最笨的思路:

select max(left(xxxx,6)) from table --得到当前数据库的最大编号

然后就自己拼凑就OK了 --------------------编程问答-------------------- 加insert的触发器比较好,维护起来也方便 --------------------编程问答-------------------- amandag(高歌) ( ) 信誉:100    Blog   加为好友 
这样的长度是8000
如果我只需要长度是8位呢 --------------------编程问答-------------------- create table Pr_Jc
(
id int identity, 
Pr_JcNum varchar(8),
Name varchar(20)
)

CREATE TRIGGER Pr_Jc_Insert ON Pr_Jc
FOR INSERT
AS
UPDATE Pr_Jc 
SET Pr_JcNum =(SELECT right(Convert(varchar(4),year(getdate())),2) + REPLICATE('0',(4-len(CONVERT(varchar(4),i.id))))+CONVERT(varchar(4),i.id) + 'S')
FROM Pr_Jc INNER JOIN inserted i 
ON i.id=Pr_Jc.id

insert into pr_jc(name) values('test')

select * from pr_jc --------------------编程问答-------------------- 不好意思,你这个不对。。你是按照ID的递增来控制的,我想实现换年能够从0001开始。 --------------------编程问答-------------------- 关于生成并发唯一性流水号的解决方案 



补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,