自已做标识列的例子,不自动重排编号,而是自动补号
来源:互联网 发布:数组的赋值java 编辑:程序博客网 时间:2024/06/10 07:17
--自已做标识列的例子,不自动重排编号,而是自动补号:
--创建得到最大id的函数
create function f_getid()
returns char(3)
as
begin
declare @id int
if not exists(select 1 from tb where id='001')
set @id=1
else
begin
select @id=max(id) from tb
if @id is null
set @id=1
else
begin
declare @id1 int
select @id1=min(id) from tb a where id<>@id and not exists(select 1 from tb where id=a.id+1)
if @id1 is not null set @id=@id1
set @id=@id+1
end
end
lb_re:
return(right('000'+cast(@id as varchar),3))
end
go
--创建表
create table tb(id char(3) primary key default dbo.f_getid(),name varchar(10))
go
--插入记录测试
insert into tb(name) values('张三')
insert into tb(name) values('张四')
insert into tb(name) values('张五')
insert into tb(name) values('张六')
insert into tb(name) values('张七')
insert into tb(name) values('张八')
insert into tb(name) values('张九')
insert into tb(name) values('张十')
--显示插入的结果
select * from tb
--删除部分记录
delete from tb where name in('张三','张七','张八','张十')
--显示删除后的结果
select * from tb
--再次插入记录
insert into tb(name) values('李一')
insert into tb(name) values('李二')
--显示插入的结果
select * from tb order by id
go
--删除环境
drop table tb
drop function f_getid
/*--测试结果
id name
---- ----------
001 李一
002 张四
003 张五
004 张六
005 李二
007 张九
(所影响的行数为 6 行)
--*/
- 自已做标识列的例子,不自动重排编号,而是自动补号
- 自已做标识列的例子 不自动重排编号 而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号(zt)
- 获取自动编号列(标识列)的编号
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- DataGrid的自动编号列
- SQLServer自动编号列的重新编号
- Oracle 自动生成标识列, 比如订单编号,学生ID
- 下午做了个“自动补全”的小例子
- 有关程序打包
- 总结CSS样式表的技术优势和功能
- bash if
- C#项目中接触了TextBox只允许输入数字的问题
- [转载]WinCE 进程、线程和内存管理之同步
- 自已做标识列的例子,不自动重排编号,而是自动补号
- #ifndef & extern
- 婚姻对女人很重要,但远远不是我们的全部
- J2EE项目在LINUX环境下的部署:五、容器TOMCAT的安装
- UBUNTU下安装oracle 10g,并连接到ORACLE
- 自我总结
- abap系统自带维护表函数应用
- VC 2008 发布程序部署问题
- 星期一英特尔推出速度更快的Atom芯片