日期:2014-05-16  浏览次数:20564 次

sql server 关于销售流水号的生成
一般系统里面的销售流水,类似201319408625,201319408626这样的流水怎么生成,为什么大部分系统的都是12位,购进流水号呢?要求有源代码及其解释,谢谢。
------解决方案--------------------
这个不像一个星星该问的问题哦。
------解决方案--------------------
无非是日期时间加上随机数或序列数,没什么值得深究的.至于12位,那是需求决定的.
------解决方案--------------------
业务规定或者行业规定,没有什么为什么。根据你这个数据:201319408625,201319408626,年是知道,但是后面看不出规律
------解决方案--------------------
用bigint identity数据类型的字段.
------解决方案--------------------
这个真没技术性要求,一般都是业务性的要求而已
------解决方案--------------------
--下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
--得到新编号的函数
CREATE FUNCTION f_NextBH()
RETURNS char(8)
AS
BEGIN
RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))
END
GO

--在表中应用函数
CREATE TABLE tb(
BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int)

--插入资料
BEGIN TRAN
INSERT tb(col) VALUES(1)
INSERT tb(col) VALUES(2)
INSERT tb(col) VALUES(3)
DELETE tb WHERE col=3
INSERT tb(col) VALUES(4)
INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
COMMIT TRAN

--显示结果
SELECT * FROM tb
/*--结果
BH         col 
---------------- ----------- 
BH000001  1
BH000002  2
BH000003  4
BH000004  14
--*/


贴一个流水号自增的 自己去改一下吧。
------解决方案--------------------
引用:
Quote: 引用:

小孩最终取了啥名?

杨莫宇晨

还是没用‘杨肉泡莫’