1 --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
2 --得到新编号的函数
3 CREATE FUNCTION f_NextBH()
4 RETURNS char(8)
5 AS
6 BEGIN
7 RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))
8 END
9 GO
10
11 --在表中应用函数
12 CREATE TABLE tb(
13 BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),
14 col int)
15
16 --插入资料
17 BEGIN TRAN
18 INSERT tb(col) VALUES(1)
19 INSERT tb(col) VALUES(2)
20 INSERT tb(col) VALUES(3)
21 DELETE tb WHERE col=3
22 INSERT tb(col) VALUES(4)
23 INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
24 COMMIT TRAN
25
26 --显示结果
27 SELECT * FROM tb
28 /*--结果
29 BH col
30 ---------------- -----------
31 BH000001 1
32 BH000002 2
33 BH000003 4
34 BH000004 14
35 --*/
2 --得到新编号的函数
3 CREATE FUNCTION f_NextBH()
4 RETURNS char(8)
5 AS
6 BEGIN
7 RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))
8 END
9 GO
10
11 --在表中应用函数
12 CREATE TABLE tb(
13 BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),
14 col int)
15
16 --插入资料
17 BEGIN TRAN
18 INSERT tb(col) VALUES(1)
19 INSERT tb(col) VALUES(2)
20 INSERT tb(col) VALUES(3)
21 DELETE tb WHERE col=3
22 INSERT tb(col) VALUES(4)
23 INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
24 COMMIT TRAN
25
26 --显示结果
27 SELECT * FROM tb
28 /*--结果
29 BH col
30 ---------------- -----------
31 BH000001 1
32 BH000002 2
33 BH000003 4
34 BH000004 14
35 --*/
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步