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 -- */