作一个表,两个字段,Genid (id int,Pdate datetime),只有一条记录;
使用存储过程得到编号,这样就肯定不会重复了。
生成编号的主要语句 update Genid
set id = right('000'+ rtrim(convert(varchar,isnull((select id from Genid where datediff(dd,Pdate,getdate()) = 0),0) + 1)),4)
select id //这个就是递增后的编号了。
from genid
使用存储过程得到编号,这样就肯定不会重复了。
生成编号的主要语句 update Genid
set id = right('000'+ rtrim(convert(varchar,isnull((select id from Genid where datediff(dd,Pdate,getdate()) = 0),0) + 1)),4)
select id //这个就是递增后的编号了。
from genid
解决方案 »
- 求助!谁知道java产生随机数的函数?
- 一个脚本问题 图片滚动的
- Thread sleep 使用问题。
- 小弟出学
- 一个关于NULL 的貌似不难的问题
- Borland 产品试用光盘中的Together® Edition for JBuilder®谁有注册码,能帮我通过注册,哪怕只用几个月也可以,送100分
- 请问哪里有用JAVA实现语音聊天的例子或代码参考?
- 高手请进,一个奇怪的问题!
- 怪事情,重装系统后最简单的HelloWorld程序都不能编译成功?
- 将父类变量强制赋予子类变量时,发生了什么?比如子类的成员变量,假如父类中有不存在子类中有的成员变量的情况,那么子类中该变量是否默认取值???
- 请问如何捕获JEditorPane上的事件?
- 哪里有Java 开发宝典下载呀???
句 update Genid
set id = right('000'+ rtrim(convert(varchar,isnull((select id from Genid where datediff(dd,Pdate,getdate()) = 0),0) + 1)),4),
pdate = case when datediff(dd,pdate,getdate()) <> 0 then getdate() else pdate end
create table genid
(id int primary key,
Pdate datetime
)
drop procedure Pgenid
go
create procedure PGenid
as
begin
update Genid
set id = (isnull((select id from Genid where datediff(dd,Pdate,getdate()) = 0),0) + 1),
pdate = (case when datediff(dd,pdate,getdate()) <> 0 then getdate() else pdate end)
select right('000'+ rtrim(convert(varchar,id)),4) from Genid
enddrop table genidinsert genid
values
(1,'2000-1-1')exec Pgenid存储过程返回的结果集就是流水号,也可以用OUT的参数了,基本方法就是这样了。
(id int primary key,
Pdate datetime
)
drop procedure Pgenid
go
create procedure PGenid
as
begin
update Genid
set id = (isnull((select id from Genid where datediff(dd,Pdate,getdate()) = 0),0) + 1),
pdate = (case when datediff(dd,pdate,getdate()) <> 0 then getdate() else pdate end)
select right('000'+ rtrim(convert(varchar,id)),4) from Genid
enddrop table genid --->这句放这里干什么?insert genid
values
(1,'2000-1-1')exec Pgenid存储过程返回的结果集就是流水号,也可以用OUT的参数了,基本方法就是这样了。
只有两个Create,再加写入一个种子的Insert是有用的。