写一个自动编号的存储过程

Create Function f_getid()
Returns Varchar(13)
As
Begin
 Declare @id varchar(13),@dt varchar(8)
 Select @dt=dt From v_getdate
 Select @id=max(id) From tb Where id like @dt+'%'
 IF @id Is null
  Set @id=@dt+'0001'
 Else
  Set @id=@dt+Right('0000'+Cast(Cast(Right(@id,3) As Int)+1 As Varchar),4)
  Return(@id)
End
Go

--创建表
Create table tb(id varchar(20) default dbo.f_getid() primary key,name varchar(10))
go

--创建视图,得到当前日期(因为函数中不能使用getdate())
Create view v_getdate as select dt=convert(varchar,getdate(),012)
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('张十')
insert into tb(name) values('张十一')
insert into tb(name) values('张十二')

--显示插入的结果
select * from tb

go


id                   name      
-------------------- ----------
0411040001           张三
0411040002           张四
0411040003           张五
0411040004           张六
0411040005           张七
0411040006           张八
0411040007           张九
0411040008           张十
0411040009           张十一
0411040010           张十二

--删除环境
drop table tb
drop view v_getdate
drop function f_getid
                                                                                                          author :miss wang reshipment

转载于:https://www.cnblogs.com/wisdom/archive/2006/12/31/608601.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值