当前位置: 首页 > news >正文

关于计数以及Index返回订单号升级版(控制字符长度,控制年月标记)

数据库表操作:

EXEC sys.sp_dropextendedproperty @name=N'Name' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'Updated'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'CreateDate'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'KeyWord'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'ThisSigle'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'ThisIndex'GOEXEC sys.sp_dropextendedproperty @name=N'MS_Description' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'NoType'GOALTER TABLE [dbo].[SetNoIndex] DROP CONSTRAINT [DF_SetNoIndex_Updated]
GOALTER TABLE [dbo].[SetNoIndex] DROP CONSTRAINT [DF_SetNoIndex_CreateDate]
GO/****** Object:  Table [dbo].[SetNoIndex]    Script Date: 2023/8/2 20:36:51 ******/
DROP TABLE [dbo].[SetNoIndex]
GO/****** Object:  Table [dbo].[SetNoIndex]    Script Date: 2023/8/2 20:36:51 ******/
SET ANSI_NULLS ON
GOSET QUOTED_IDENTIFIER ON
GOCREATE TABLE [dbo].[SetNoIndex]([Id] [int] IDENTITY(1,1) NOT NULL,[NoType] [int] NULL,[ThisIndex] [int] NULL,[ThisSigle] [nvarchar](30) NULL,[KeyWord] [nvarchar](30) NULL,[CreateDate] [datetime] NULL,[Updated] [datetime] NULL
) ON [PRIMARY]GOALTER TABLE [dbo].[SetNoIndex] ADD  CONSTRAINT [DF_SetNoIndex_CreateDate]  DEFAULT (getdate()) FOR [CreateDate]
GOALTER TABLE [dbo].[SetNoIndex] ADD  CONSTRAINT [DF_SetNoIndex_Updated]  DEFAULT (getdate()) FOR [Updated]
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0月累计,1日累计,2年累计,3,总共累计' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'NoType'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前排序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'ThisIndex'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'当前标记(如果是日累计就是20230802,如果是月累计就是 202308 ,如果是年累计就是 2023,如果是 所有累计就是0)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'ThisSigle'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'关键字' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'KeyWord'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'CreateDate'
GOEXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'更新时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex', @level2type=N'COLUMN',@level2name=N'Updated'
GOEXEC sys.sp_addextendedproperty @name=N'Name', @value=N'编号自动生成器' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'SetNoIndex'
GO

数据库 脚本操作包括测试:

declare  @SetNoType int ,@SetThisSigle nvarchar(10), @SetKeyword nvarchar(10),@ThisDate nvarchar(20),@OutStr nvarchar(20),@OutStrLength int  ;
set @ThisDate =CONVERT(nvarchar, getdate(), 112);---当前日期全部数据(20230108set @SetNoType = 3;--设定类型
set  @OutStrLength =4;--序号保留多少位
set @SetKeyword = '测试';---当前关键字
if (@SetNoType = 0)--0月累计
beginset @SetThisSigle = SUBSTRING(@ThisDate,1,6); 
end
else if(@SetNoType =1 )--1日累计
beginset @SetThisSigle = @ThisDate; 
end
else if(@SetNoType =2)--2年累计
begin set @SetThisSigle = SUBSTRING(@ThisDate,1,4); 
end 
else --3总共累计
beginset @SetThisSigle ='';
end declare @SetIndex int ;if  exists(select * from  SetNoIndex where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle )begin -- 如果存在就更新 update SetNoIndex set ThisIndex = ThisIndex+1 ,Updated =getdate() where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle;--先更新select  @SetIndex= ThisIndex from  SetNoIndex where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle ;--在提取结果end elsebeginset  @SetIndex = 1;insert  into SetNoIndex ([NoType],[ThisIndex],[ThisSigle],[KeyWord])  values (@SetNoType,@SetIndex,@SetThisSigle,@SetKeyword);-- 插入数据end --select DATALENGTH( @ThisDate);--select  @ThisDate;--select @SetThisSigle;select @SetThisSigle + right('00000000000'+convert(varchar, @SetIndex),@OutStrLength) from SetNoIndex where  KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle; 

程序操作方法:

     /// <summary>///获取当前/// </summary>/// <param name="SetNoType"> 0月累计,1日累计,2年累计,3,总共累计</param>/// <param name="SetKeyword">当前关键字(需要的表单名子)</param>/// <param name="OutIndexLength">index编号长度 0001 就是4 </param>/// <returns></returns>public string InsertOrUpdate( string SetKeyword,int SetNoType=0, int OutIndexLength=5){string sql = $@"declare  @SetNoType int ,@SetThisSigle nvarchar(10), @SetKeyword nvarchar(10),@ThisDate nvarchar(20),@OutStr nvarchar(20),@OutStrLength int  ;
set @ThisDate =CONVERT(nvarchar, getdate(), 112);---当前日期全部数据(20230108)
set @SetNoType = {SetNoType};--设定类型
set  @OutStrLength ={OutIndexLength};--序号保留多少位
set @SetKeyword = '{SetKeyword}';---当前关键字
if (@SetNoType = 0)--0月累计
beginset @SetThisSigle = SUBSTRING(@ThisDate,1,6); 
end
else if(@SetNoType =1 )--1日累计
beginset @SetThisSigle = @ThisDate; 
end
else if(@SetNoType =2)--2年累计
begin set @SetThisSigle = SUBSTRING(@ThisDate,1,4); 
end 
else --3总共累计
beginset @SetThisSigle ='';
end declare @SetIndex int ;if  exists(select * from  SetNoIndex where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle )begin -- 如果存在就更新 update SetNoIndex set ThisIndex = ThisIndex+1 ,Updated =getdate() where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle;--先更新select  @SetIndex= ThisIndex from  SetNoIndex where KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle ;--在提取结果end elsebeginset  @SetIndex = 1;insert  into SetNoIndex ([NoType],[ThisIndex],[ThisSigle],[KeyWord])  values (@SetNoType,@SetIndex,@SetThisSigle,@SetKeyword);-- 插入数据end --select DATALENGTH( @ThisDate);--select  @ThisDate;--select @SetThisSigle;select @SetThisSigle + right('00000000000'+convert(varchar, @SetIndex),@OutStrLength) from SetNoIndex where  KeyWord = @SetKeyword  and  ThisSigle = @SetThisSigle; ";string OutStr = DBUtility.DapperDbHelper.ExecuteScalar<string>(sql);return OutStr;} 
http://www.lryc.cn/news/105916.html

相关文章:

  • 【计算机网络】11、网桥(bridge)、集线器(hub)、交换机(switch)、路由器(router)、网关(gateway)
  • 第九篇-自我任务数据准备
  • 2023.8.1号论文阅读
  • webpack优化前端框架性能
  • Unity UGUI的Outline(描边)组件的介绍及使用
  • 爆改vue3 setup naiveui可编辑table
  • 功率放大器的种类有哪三种类型
  • HDFS 分布式存储 spark storm HBase
  • Vue3文字实现左右和上下滚动
  • Docker Sybase修改中文编码
  • 【SpringCloud Alibaba】(六)使用 Sentinel 实现服务限流与容错
  • mysql的主从复制
  • 【Golang 接口自动化03】 解析接口返回XML
  • Java+bcprov库实现对称和非对称加密算法
  • 国内最大Llama开源社区发布首个预训练中文版Llama2
  • Qt应用开发(基础篇)——滑块类 QSlider、QScrollBar、QDial
  • 【3-D深度学习:肺肿瘤分割】创建和训练 V-Net 神经网络,并从 3D 医学图像中对肺肿瘤进行语义分割研究(Matlab代码实现)
  • MongoDB文档--架构体系
  • GEE学习03-Geemap配置与安装,arcgis pro自带命令提示符位置等
  • 软件测试面试总结——http协议相关面试题
  • 大数据与okcc呼叫中心融合的几种方式
  • WAF绕过-工具特征-菜刀+冰蝎+哥斯拉
  • 使代码减半的5个Python装饰器
  • 线程池的线程回收问题
  • 盘点那些不想骑车的原因和借口。
  • 【深度学习Week3】ResNet+ResNeXt
  • Visual Studio 2022的MFC框架全面理解
  • C# 消息队列 (MSMQ) 进程之间的通信
  • 算法练习(4):牛客在线编程05 哈希
  • 数字信号处理——频谱分析