固定编号+顺序递增编号实现数据库编号递增

-- 下面的代码生成长度为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
--
*/

 

你可能感兴趣的:(固定编号+顺序递增编号实现数据库编号递增)