--
下面的代码生成长度为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 --
*/
转自别的网站,地址记不清了!
SQL code
转载于:https://www.cnblogs.com/stalwart/archive/2011/04/29/2032897.html