.NET.自动流水号了解一下
- 0. 目录
- 1. .NET那些事儿
- 1.1 配置步骤
- 1.1.1 创建序列
- 1.1.2 创建数据库作业
- 1.2 内置代码调用
0. 目录
1. .NET那些事儿
1.1 配置步骤
1.1.1 创建序列
Use Training
GO
CREATE SEQUENCE [dbo].[PurcharseOrderNumberSeq]
AS [bigint]
START WITH 1
INCREMENT BY 1
MINVALUE 1
MAXVALUE 9999
CACHE
GO
1.1.2 创建数据库作业
1)维护作业名称
新建作业,名称:重置SQL序列
2)维护“步骤”
切换到“步骤”选项卡,新建步骤
a)步骤名称:重置SQL序列为1,
b)命令:
Use Training
GO
ALTER SEQUENCE dbo.PurcharseOrderNumberSeq RESTART WITH 1;
c)点击“确定”按钮
3)维护“计划”
切换到“计划”选项卡,新建计划
a)重置序列为1
b)执行频率:每天
c)每天:凌晨执行
d)点击“确定”按钮
1.2 内置代码调用
private string GetAccountAutoNumber(string prefix, string seqName)
{
DateTime currentDate = DateTime.Now;
string formno = prefix + currentDate.Year.ToString() + currentDate.Month.ToString().PadLeft(2, '0') + currentDate.Day.ToString().PadLeft(2, '0');
#region 查询最大的SQL序列
string sql = $@"SELECT NEXT VALUE FOR {seqName}";
DataTable dt = _dbHelper.ExecuteDataTable(sql);
if (dt == null || dt.Rows.Count <= 0)
throw new InvalidPluginExecutionException("未获取到SQL序列:AccountNumberSeq,请联系系统管理员");
#endregion
formno += dt.Rows[0][0].ToString().PadLeft(4, '0');
return formno;
}
参数讲解:
-
参数prefix:
前缀名 -
参数seqName:
自定义序列名-> 例如:前文PurcharseOrderNumberSeq
返回值讲解
-
参数formno:
流水号-> 例如P202101190001