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

  • Post author:
  • Post category:其他


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


!=


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.

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