现在有一个自动编号的存储过程,每次登记的时候都会+1,现在想让这个编号每次喝酒第二天身上疼重新从1开始,有什么办法

--=============================================--&Author:&&&&&&&&&vagerent&--&Create&date:&&&--&Description:&&&&&获取编码,形如HEAD01;(头+日期+6位整数)后面为六位,每新的一年编号重新归0&--&=============================================
alter PROCEDURE [dbo].[mp_GetPKNo]
@sTableName varchar(50),
@sFieldName varchar(50),--目标字段
@sHead varchar(50),--前缀,如Head等
@sPK varchar(50) out --输出
declare @dToday datetime,@sToday varchar(10),
@sYear varchar(10),@sSubID varchar(20),@sSql nvarchar(1000);--动态sql一定要用nvarchar!!!
set @dToday = getdate();
set @sToday = Convert(varchar,Year(@dToday))
+SubString(Convert(varchar,Month(@dToday)+100),2,2)--加100为了预防03月份前面的0没了,此处103后取第二位开始的两位
+SubString(Convert(varchar,Day(@dToday)+100),2,2);
--select @sToday--形如
set @sYear=Convert(varchar(10),Year(getdate()))
--select @sYear--形如2006
declare @sHead1 varchar(30),@iHeadLength int;
set @sHead1=@sHead+@sYear;--形如HEAD2006
--select @sHead1;--形如HEAD2006
set @iHeadLength=Len(@sHead1);--形如HEAD2006的长度
set @sSql = N'select @sSubID=Max(SubString('
+@sFieldName+','+Convert(varchar(10),@iHeadLength+5)+',6)) from '--000002最大的后六位,避免重复
+@sTableName+' where SubString('+@sFieldName+',1,'
+Convert(varchar(10),@iHeadLength)+')='''+@sHead1+'''';
--select @sS--形如select..先找到有HEAD开头的序列号,然后取出后六位
exec sp_executesql @sSql,N'@sSubID varchar(20) output',@sSubID
if ((@sSubID='') or (@sSubID is null))
set @sSubID='000001'
declare @iSubID int;
set @iSubID=Convert(int,@sSubID)+1000001;--前面添加多一位预防0丢失
set @sSubID=SubString(Convert(varchar,@iSubID),2,6)--取出最终想要的999序列号
--select @sSubID;
set @sPK=@sHead+@sToday+@sSubID;
阅读(...) 评论()SQLServer中一个多用户自动生成编号的过程
关注图老师设计创意栏目可以让大家能更好的了解电脑,知道有关于电脑的更多有趣教程,今天给大家分享SQLServer中一个多用户自动生成编号的过程教程,希望对大家能有一点小小的帮助。
  if not exists (select * from dbo.sysobjects where id = object_id(N'[IndexTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)  create table IndexTable(Ex char(20), num integer)  go  create procedure SetIndex @Ex char(20),@result char(30) output,@Fmt integer  as  & declare @num char(10)  & SET NOCOUNT on  & if not exists(select num from indextable where Ex=@ex )  && insert into indextable values(@ex,1)  & else  && update indextable set num=num+1  & select @num=cast(num as char(10)) from indextable where ex=@ex   & select @num=space(@fmt-len(@num))+@num  & select @num=replace(@num,' ','0')  & select @result=rtrim(@ex)+rtrim(@num)  & SET NOCOUNT off  go    --------    在delphi中调用    procedure TForm1.Button1Click(Sender: TObject);  begin  & StoredProc1.ParamByName('@Ex').AsString:='User';  & StoredProc1.ParamByName('@fmt').AsInteger:=3;  & StoredProc1.ExecP  & showmessage(StoredProc1.ParamByName('@result').value)      -----------  参数@ex表示前缀,@fmt表示数字长度,@result表示返回数据  返回User001
来源:/n/3765.html
热门搜索:
ps图片 素描风格效果教程
PS调色教程 给美女图片加上怡人的天空背景效果
怎么在QQ空间将花藤放在空间主页
使用PS制作小清新效果签名图片
您可能会发现,经常看到在短视频有人在表演的时候说一些鼓励的话,然后就是双击666,听的您或许摸不清头脑,我就在这里为您解答一下,请给我点赞,让我解答更加有动力。
您是否熟悉我们生活的城市是怎么命名而来的呢?中国城市的命名可是有很深的文化底蕴和历史背景的,你都知道么?我从网上搜集了大量的城市名来源,让您好好的涨涨知识,您准备好了吗?
对于爱美人士来说,美白护肤是不分季节的,即使在冬季,依然需要做好皮肤护理工作。饮食调理是护肤的一项重要措施,那么冬天美白吃什么水果呢?接下来就和我一起来看看了解一下冬季美白吃什么水果好!
产妇顺产以后多久可以洗头发?有很多产妇为了防止自己受寒所以在产后不让自己洗头发,但是又特别难受,这篇文章讲述了产妇顺产以后多长时间可以洗头发,通过这篇文章了解产妇顺产以后多久可以洗头发吧。
阴阳师是现在相当火热的一款手游,最近阴阳师又有了新的更新,玩家可以通过挑战副本来获取妖刀姬樱雨刀舞皮肤。可是的很多人不知道阴阳师妖刀姬副本阵容是怎样的,下面就给大家来详细介绍吧。
阴阳师是现在很火热的一款手机游戏,这款游戏一直在更新完善,受到很多人的追捧,就在最近阴阳师又推出了小鹿男,小鹿男作为SSR式神,很多人对它还不是很了解,下面就给大家来介绍阴阳师小鹿男御魂以及阵容搭配吧。
我们在玩阴阳师完成悬赏任务的时候,都会要求玩家找到各种式神的位置,可是很多人不知道阴阳师跳跳哥哥在哪里刷、哪里多,下面就给大家来详细介绍吧,希望对大家玩游戏有所帮助。
京津冀及周边地区出现持续雾霾天气,很是让孕妈妈们担心。持续的雾霾天气对孕妇产生了很大的影响,那么雾霾天气对孕妇危害有多大?雾霾天气孕妇怎么办?下面的文章详细介绍 了雾霾天气对孕妇的危害,一起来看看吧。
我们知道宝宝刚刚出生的时候口腔里是没有牙齿的,一般孩子在四个月以后慢慢开始出牙,每个孩子的体质不一样,所以出牙的时间也是有所差异的,宝宝出牙的时候身体会出现一些症状,家长们要及时的护理好,下面一起来看看宝宝长牙的症状有哪些。
肚子上的赘肉看上去让人烦恼,尤其是对于想穿裙子的女生来说更是一件郁闷的事情。现在减肥的方法有很多,但是很多人并不知道专门瘦肚子的方法。那么,如何瘦肚子呢?下面就给大家介绍几种减肚子的方法吧。

我要回帖

更多关于 每次想你我都会心痛 的文章

 

随机推荐