您的位置:首页 > 其它

根据日期时间和随机量生成唯一ID!!

2009-03-21 14:03 501 查看
1.建立一个MakeManID表,
主要有三个字段:Model,Item和MaxValue,
建立存储过程GetMakeManIDValue如下:





Code

CREATE Proc dbo.GetMakeManIDValue
(
@MaxValue int output,
@Model varchar(10),
@Item varchar(30)
)AS
declare @errorNb int
Begin Tran
select @MaxValue=MaxValue from MakeManID with (UPDLOCK) Where Model=@Model and Item=@Item
if (@MaxValue is null )
begin
insert into MakeManID(Model,Item)values(@Model,@Item)
set @errorNb=@@error
if (@errorNb!=0) goto errHandle
set @MaxValue=1
end else
begin
set @MaxValue=@MaxValue+1
update MakeManID set MaxValue=MaxValue+1 where Model=@Model and Item=@Item
set @errorNb=@@error
if (@errorNb!=0) goto errHandle
end

commit Tran
return

errHandle:
rollback tran
RAISERROR(@errorNb,16, 1)
set @MaxValue=0
return
GO

存储过程主要完成得到MaxValue的值,然后加1.
2.建立一个man表,里面有组织ID,职工姓名等等字段。
然后添加一个存储过程Add_Man.





Code

CREATE PROCEDURE Add_Man
@GroupID int,
@Name varchar (20),
@School varchar (20),
@Qualifications varchar (20),
@Positions int,
@Salary int,
@Evaluation varchar (255)
AS
set xact_abort on
declare @ManID char(10)
declare @D datetime
set @D=GetDate()
declare @strY char(4)
Declare @Item varchar(7)
set @Item= right('000'+convert(varchar(3),@GroupID),3)+convert(varchar(4),DatePart(yyyy,@D))

declare @max int
exec dbo.GetMakeManIDValue @max out ,'ManID',@Item
set @ManID=@Item+right('000'+convert(varchar(3),@max),3)
begin tran
insert into Man([ManID],[PassWord],[Name],[School],[Qualifications],[Positions],[Salary],[Evaluation])
values (@ManID,'123456',@Name,@School,@Qualifications,@Positions,@Salary,@Evaluation)
if @@Error !=0 goto errHandle
commit tran
return
errHandle:
set @ManID=''
rollback tran
return
GO



--------------------------

新闻:
为啥就那么痛恨IE?

导航:
博客园首页
知识库
新闻
招聘
社区
小组
博问
网摘
找找看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: