自定义函数做标识列的例子,不自动重排编号,而是自动补号(zt)
来源:互联网 发布:淘宝卖家差评神回复 编辑:程序博客网 时间:2024/06/10 09:30
(注:此文章转自:http://blog.csdn.net/htl258/archive/2009/07/22/4369943.aspx)
--自已做标识列的例子,不自动重排编号,而是自动补号:
--创建得到最大id的函数
IF NOT OBJECT_ID('[f_getid]') IS NULL
DROP function f_getid
GO
create function f_getid()
returns int
as
begin
declare @id int
if not exists(select 1 from tb where id=1)
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 @id
end
go
--创建表
IF NOT OBJECT_ID('[tb]') IS NULL
DROP TABLE tb
GO
create table tb(id int 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
/*
id name
----------- ----------
1 张三
2 张四
3 张五
4 张六
5 张七
6 张八
7 张九
8 张十
(8 行受影响)
*/
--删除部分记录
delete from tb where name in('张三','张七','张八','张十')
--显示删除后的结果
select * from tb
/*
id name
----------- ----------
2 张四
3 张五
4 张六
7 张九
(4 行受影响)
*/
--再次插入记录
insert into tb(name) values('李一')
insert into tb(name) values('李二')
--显示插入的结果
select * from tb order by id
/*
id name
----------- ----------
1 李一
2 张四
3 张五
4 张六
5 李二
7 张九
(6 行受影响)
*/
--删除环境
drop table tb
drop function f_getid
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号(zt)
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号
- 自已做标识列的例子,不自动重排编号,而是自动补号
- 自已做标识列的例子 不自动重排编号 而是自动补号
- 获取自动编号列(标识列)的编号
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- SQL SERVER重置自动编号列(标识列)
- DataGrid的自动编号列
- SQLServer自动编号列的重新编号
- Oracle 自动生成标识列, 比如订单编号,学生ID
- 下午做了个“自动补全”的小例子
- do right things do things right
- 服务器和普通PC的区别
- Android设计缺陷--无法通话录音
- VC运行时库类型分析
- pv是什么意思?什么是pv值**pv访问量-网站pv是什么?
- 自定义函数做标识列的例子,不自动重排编号,而是自动补号(zt)
- GridVIew 添加行
- 服务器的各种分类
- 为什么秋冬季节皮肤会痒??
- 360与腾讯骂战升级
- Oracle 常用表
- 今天开始写博客
- 实现多附近上传
- Android提高第三篇之SurfaceView与多线程的混搭