Sql Server实现自动增长
时间:2021-07-01 10:21:17
帮助过:32人阅读
--
得到新编号的函数
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
--*/
create table tb
(id int identity,
name varchar(10),
code as ‘BH‘+right(
‘0000‘+cast(id
as varchar),
5))
go
insert tb(name) select ‘A‘
union all select ‘B‘
union all select ‘C‘
union all select ‘D‘
select *
from tb
drop table tb
/*
id name code
----------- ---------- ------------
1 A BH00001
2 B BH00002
3 C BH00003
4 D BH00004
Sql Server实现自动增长
标签:delete creat arch div 显示 实现 null code bsp