sql-server - 世代序列证书No
问题描述
我有用于生成 CertificateNo 的块代码。我需要任何人检查我的块代码的性能
--Struct table config
--drop table CertificateSequenceGen;
CREATE TABLE [dbo].[CertificateSequenceGen](
[Bus] [varchar](15) NULL,
[MonthNo] [varchar](4) NOT NULL,
[DateStart] [date] NULL,
[DateEnd] [date] NULL,
[SequenceStart] [int] NOT NULL,
[SequenceEnd] [int] NOT NULL,
[CurrentNo] [int] NOT NULL
) ON [PRIMARY]
---initial default data into table
INSERT INTO [dbo].[CertificateSequenceGen]([Bus],[MonthNo],[DateStart],[DateEnd],[SequenceStart],[SequenceEnd],[CurrentNo])
VALUES('ABC','1902','2019-02-01','2019-03-01',1,9999999,1);
--Store for generate certificateN
--drop PROC prdGetCertificateNo
create PROC prdGetCertificateNo
@Bus varchar(15) = '',
@Prefix varchar(15) = '',
@CertificateNo varchar(31) OUTPUT
as
begin
update
CertificateSequenceGen
set
@CertificateNo = @Prefix + Bus + MonthNo + left (REPLICATE('0',7 - len(CurrentNo)) + cast (CurrentNo as varchar(7)),7),
CurrentNo = CurrentNo + 1
where
Bus = @Bus and GETDATE() between DateStart and DateEnd;
end
/*
--execute procedure genarate the CertificateNo
declare @Prefix varchar(15) = 'YZ', @ProductCode varchar(15) = 'ABC', @CertificateNo varchar(31);
exec [dbo].[prdGetCertificateNo] @ProductCode, @Prefix, @CertificateNo output
select @CertificateNo;
*/
下面的执行过程是结果--result--- YZABC19020000001
解决方案
推荐阅读
- python - 将变量附加到泡菜文件并读取它们
- python - 有没有办法将方程作为字符串传递给 Python 函数?
- angular - E:/project/ 超出最大预算中的错误
- c++ - 我遵循了 CUDA 教程,但我的 GPU 计算时间比我的 CPU 时间长得多?
- reactjs - 必应地图在反应。如何在地图上单独的可滚动框中将固定位置显示为列表?我找不到它的文档
- r - 使用 httr 发布请求
- swift - 无法转换“ReversedCollection”类型的值
' 到预期的参数类型 '[String.Element]' (又名 'Array ') - php - 无法在 Ubuntu 上连接到 MySQL 服务器
- python - Django 上下文渲染 - django.template.base.VariableDoesNotExist:查找键失败
- heroku - 从数字海洋迁移到 Heroku