`
yaoyao19851023
  • 浏览: 32164 次
  • 性别: Icon_minigender_2
  • 来自: 大连
最近访客 更多访客>>
社区版块
存档分类
最新评论

用存储过程生成流水帐号问题

    博客分类:
  • c#
Go 
阅读更多
--创建测试表  
  create   table   usertable(userid   varchar(20),username   nvarchar(20))  
  go  
  --创建触发器  
  create   trigger   tg_insert   on   usertable  
  for   insert  
  as  
  declare   @username   nvarchar(20)  
  declare   @userid   varchar(20)  
  declare   @num   int  
  declare   @i   int  
  select   @userid=max(userid)   from   usertable   where   userid   like   'w'   +   convert(varchar(10),getdate(),112)   +   '%'  
  if   @userid   is   null  
        set   @userid='w'   +   convert(varchar(10),getdate(),112)   +   '000001'  
  else  
        begin  
            set   @num=cast(substring(@userid,10,6)   as   int)  
            set   @num=@num   +   1  
            set   @i=len(cast(@num   as   varchar(6)));  
            set   @userid='w'   +   convert(varchar(10),getdate(),112)  
            while(@i<6)  
            begin    
                set   @userid=@userid   +   '0';  
                set   @i=@i   +   1;  
            end              
            set   @userid=@userid   +   cast(@num   as   varchar(6))  
        end  
  select   @username=username   from   inserted  
  rollback  
  insert   into   usertable   values(@userid,@username)  
   
   
  go  
   
  --测试数据  
  insert   into   usertable(username)   values('aa')  
  go  
  insert   into   usertable(username)   values('bb')  
  go  
  insert   into   usertable(username)   values('cc')  
  go  
  --显示数据  
  select   *   from   usertable  
  go  
  --删除测试表  
  drop   table   usertable



CREATE   PROCEDURE   [dbo].[Sp_USERFLM]  
  @UserName   nvarchar(50)=null,  
  @UserPwd   nvarchar(50)=null  
  as  
  declare   @strNumber   nvarchar(50)  
  declare   @i   int ---循环因子  
   
  set   @i=1  
   
  --where   后面的条件是在同一年内,序号在原来基础上增加,到第二年,序号重新从1开始增加,  
  set   @strNumber=(   select   max(cast(right(UserID,7)   as   int))   FROM   USETABLE   where   SUBSTRING   (UserID   ,   2   ,   4   )=year(getdate()))  
  set   @strNumber=isnull(@strNumber,0)+1  
  while   (@i<7) --数字  
  begin  
  set   @strNumber='0'+@strNumber  
  set   @i=@i+1  
  end  
  --W+日期+数字  
  set   @strNumber='W'+convert(nvarchar(8),getdate(),112)+@strNumber  
   
  insert   into   USETABLE   values   (@strNumber,@UserName,@UserPwd)    
   
  GO  


CREATE   PROCEDURE   [dbo].[Sp_USERFLM]  
  @UserName   nvarchar(50)=null,  
  @UserPwd   nvarchar(50)=null  
  as  
  declare   @strNumber   nvarchar(50)  
  declare   @i   int---循环因子  
   
   
  --where   后面的条件是在同一年内,序号在原来基础上增加,到第二年,序号重新从1开始增加,  
  set   @strNumber=(   select   max(cast(right(UserID,7)   as   int))   FROM   USETABLE   where   SUBSTRING   (UserID   ,   2   ,   4   )=year(getdate()))  
  set   @strNumber=isnull(@strNumber,0)+1  
  while   (len(@strNumber)<8)--数字  
  begin  
  set   @strNumber='0'+@strNumber  
  end  
  --W+日期+数字  
  set   @strNumber='W'+convert(nvarchar(8),getdate(),112)+@strNumber  
   
  insert   into   USETABLE   values   (@strNumber,@UserName,@UserPwd)
分享到:
评论

相关推荐

    自动生成流水账号的存储过程 格式为 年月日+’0001‘

    用于自动生成流水账号的存储过程 有详细的注释

    根据当天日期生成流水单号存储过程,格式:年月日+'0001'

    根据当天日期生成流水单号存储过程 格式为 年月日+'0001'

    2017最新工商银行流水模板.doc

    银行流水模板是使用计算机程序来生成的,它可以自动计算借方和贷方的金额,并生成验证码、打印时间等信息。 2. 银行流水模板结构 银行流水模板通常包括以下几个部分: * 标题:包括模板的名称、日期和时间等信息...

    基于Django3.2.7+Vue2+ElementUI的相对比较自动化生成的后台管理系统

    基于Django3.2.7+Vue2+ElementUI的相对比较自动化生成的后台管理系统。借助SimpleUI开源项目对Django原生的Admin后台管理页面进行了二次开发和优化改进而生成的比较现代化的后台管理系统。 功能: 设备管理(服务器...

    银行管理系统多数据库版

    《银行管理系统多数据库版》是专为金融机构设计的一款高效、灵活的管理软件,它具备了对多种数据库的支持,以满足不同银行在数据存储和管理上的多元化需求。此系统旨在优化银行的日常运营,提高工作效率,确保数据的...

    C语言银行业务

    )存取标记根据发生额自动生成(1表示存,-1表示取)、日期(包含年月日时分)自动生成、余额自动更改, 输入完毕后,系统询问是否确定?是(1)否(0)。输入1,系统将此信息存入到文件”bankrecord.dat”中,...

    基于jsp的鱼类饵料管理系统设计与实现+演示

    鱼类饵料管理系统的建立,旨在为渔业养殖者提供一套便捷、高效的饵料采购、存储和使用管理方案。本系统采用Java技术进行开发,结合JSP(JavaServer Pages)的动态网页技术,实现了用户登录注册、账户管理、饵料购入...

    V2.1专业版

    10. **客户服务**:以诚公司通常会提供技术支持和售后服务,解答用户在使用过程中遇到的问题,确保软件的稳定运行。 以诚支票打印软件V2.1专业版通过这些功能,不仅简化了支票操作流程,还降低了错误率,提升了财务...

    BankSystem

    部署时,需要考虑服务器配置、网络环境、数据迁移等问题,以确保软件顺利运行。 综上所述,BankSystem是集成了VS开发环境、Java语言和SQL Server数据库技术的银行管理系统,其背后蕴含了丰富的软件工程理论和实践。...

    SpringMVC+Spring+MyBatis实现支付宝扫码支付功能(图文详解).docx

    你需要在蚂蚁金服开放平台上注册开发者账号,生成密钥,并正确设置这些配置项,确保支付成功后能正常进行验签。 - **测试账户与测试运行**:在沙箱环境下,你可以获取到测试买家账户进行支付操作。支付成功后,检查...

    2008年数据库系统工程师下午试题.pdf

    - 预约机制:当库存不足时,客户可以预约,系统保存预约记录并生成预约流水号。 - 归还流程:系统更新租借记录,并检查是否有预约客户。 4. 数据流图(DFD):DFD是一种系统分析工具,用于表示数据如何在系统中...

    2018年下半年1软件设计师.pdf

    - **知识点**:在软件开发过程中,重复使用他人的代码或者自己的旧代码时需要注意知识产权问题。未经许可的情况下,直接使用他人受版权保护的代码是违法的。 - **注意事项**: - 如果接受不同公司的委托开发相似...

    polymericPay.rar

    Python中,通常会使用`wxpay`或`wechatpay`等第三方库来简化这个过程。这些库可以帮助我们生成预支付交易二维码、处理支付结果通知、查询订单状态以及执行退款操作。在实现过程中,需要配置商户号、AppID、密钥等...

    基于ASP的无忧购物系统 ASP专业版 v2022.4.30.zip

    一个专业的ASP购物系统需要考虑的安全问题包括SQL注入、XSS攻击、CSRF等,因此,代码需要进行严格的输入验证和输出编码。同时,定期更新系统、修复漏洞、备份数据也是保障系统稳定运行的关键。 综上所述,基于ASP的...

    javaweb超市进销存管理系统

    在开发过程中,可能会使用到Spring框架进行依赖注入,提高代码的可测试性;Hibernate或MyBatis作为ORM工具,简化数据库操作;使用Apache Tiles或Freemarker进行页面布局,提高视图开发效率。同时,系统应具备良好的...

    [PHP 程序]北雨虚拟主机定单系统 v1.0_byhost10.rar

    2. 数据库:通常会使用MySQL或者类似的SQL数据库来存储用户信息、订单数据和虚拟主机配置等关键信息。 3. HTML/CSS/JavaScript:用于构建前端用户界面,提供交互性,使得用户可以方便地浏览、选择和购买虚拟主机产品...

    手机订餐系统

    2. 数据库连接:使用MySQL、MongoDB等数据库存储菜品信息、订单详情、用户资料等数据。 3. 安全机制:通过OAuth2.0或JWT实现用户认证与授权,保护数据安全。 4. 队列处理:利用RabbitMQ或Kafka处理高并发下的订单...

    鹰酷网络——文成商贸源码

    4. 客户管理:存储和管理客户信息,如姓名、联系方式、购买历史等,以便进行客户关系管理。 5. 销售报告:生成销售统计报表,帮助商家分析销售趋势,制定销售策略。 6. 账务管理:处理支付和退款事务,记录财务流水...

    超市信息管理系统

    通过以上组件,超市信息管理系统能够实现商品库存管理、销售记录跟踪、财务报表生成等多种功能,帮助超市经营者有效地管理和优化业务流程。在C语言环境下,使用链表数据结构可以提高数据处理的灵活性和效率,使得...

Global site tag (gtag.js) - Google Analytics