写一个函数,放在默认值里:
create function getNumber()
returns char(5)
as
begin
declare @a char(5)
select @a=right('00000'+cast(isnull(max(字段),0)+1 as varchar(5)),5) from 表
return(@a)
end
go你在你的表里的那个字段的默认值里写:
dbo.getNumber()
create function getNumber()
returns char(5)
as
begin
declare @a char(5)
select @a=right('00000'+cast(isnull(max(字段),0)+1 as varchar(5)),5) from 表
return(@a)
end
go你在你的表里的那个字段的默认值里写:
dbo.getNumber()
解决方案 »
- 求一个 sql语句
- 一张表,字段A相同的,合并字段B的内容并输出,怎么办?
- sql server 2005, 备份的*.bak文件,拷贝到别的机子,需要重新建立数据库,如何操作?复原出错,急。
- 求SQL语句,急!!!
- 如何查看sql用户名sa的密码
- sql 语句请教个问题。。。。。。
- 比较难的查询问题。
- 求救:过滤重复字段的问题
- 请教了.关于SELECT问题
- 超难!不合理的超难,二百分相送!谢谢
- 急!!!!SQL SERVER安装有误!
- 请教一个很菜的问题,如果用sql server做的软件,装给客户的时候,客户的机器是不是一定要装sql server或至少能通过网络连接到sql server
create function f_getid()
returns int
as
begin
declare @id int
select @id=max(id) from tb
set @id=isnull(@id,0)+1
return(@id)
end
go--创建表
create table tb(id int default dbo.f_getid(),name varchar(10))
go--创建触发器,在删除表中的记录时,自动更新记录的id
create trigger t_delete on tb
AFTER delete
as
declare @id int,@mid int
select @mid=min(id),@id=@mid-1 from deleted
update tb set id=@id,@id=@id+1 where id>@mid
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--删除环境
drop table tb
drop function f_getid