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

1.建立一个MakeManID表,
主要有三个字段:Model,Item和MaxValue,
建立存储过程GetMakeManIDValue如下:

 

ContractedBlock.gif ExpandedBlockStart.gif 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!=0goto 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!=0goto errHandle
end

    
commit Tran
    
return

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

 

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

ContractedBlock.gif ExpandedBlockStart.gif 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

 

1350914.html?type=2

--------------------------
新闻: 为啥就那么痛恨IE?
导航: 博客园首页   知识库   新闻   招聘   社区   小组   博问   网摘   找找看

转载于:https://my.oschina.net/voswin/blog/183

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值