SQL Server序列号的获取
建表:
1 USE [JX_IMS_CPK]
2 GO
3
4 SET ANSI_NULLS ON
5 GO
6
7 SET QUOTED_IDENTIFIER ON
8 GO
9
10 CREATE TABLE [dbo].[WCS_Seq](
11 [SeqType] [int] NOT NULL,
12 [SeqVal] [bigint] NOT NULL,
13 [SeqTime] [datetime] NOT NULL
14 ) ON [PRIMARY]
15 GO
16
17 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'类型(1-任务单号)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WCS_Seq', @level2type=N'COLUMN',@level2name=N'SeqType'
18 GO
19
20 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序列值' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WCS_Seq', @level2type=N'COLUMN',@level2name=N'SeqVal'
21 GO
22
23 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序列时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WCS_Seq', @level2type=N'COLUMN',@level2name=N'SeqTime'
24 GO
25
26 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序列表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'WCS_Seq'
27 GO
获取序列:
1 USE [JX_IMS_CPK]
2 GO
3
4 SET ANSI_NULLS ON
5 GO
6 SET QUOTED_IDENTIFIER ON
7 GO
8 ALTER PROCEDURE [dbo].[WCS_GetTaskCode]
9 @O_TaskCode VARCHAR(50)=NULL OUTPUT
10 --获取【任务号】
11 AS
12 BEGIN
13 DECLARE @V_SeqType INT=1, --类型
14 @SeqCount INT,
15 @NowTime DATETIME=CAST(GETDATE() AS DATE),
16 @SeqVal BIGINT,
17 @SeqTime DATETIME,
18 @NextVal BIGINT=1;
19
20 SELECT @SeqCount = COUNT(1)
21 FROM WCS_Seq a
22 WHERE a.SeqType=@V_SeqType;
23
24 IF @SeqCount = 0
25 BEGIN
26 INSERT INTO WCS_Seq
27 SELECT @V_SeqType,@NextVal,@NowTime;
28 SET @O_TaskCode=RIGHT(CONVERT(VARCHAR(50),@NowTime,112),6)+RIGHT('0000'+CAST(@NextVal AS VARCHAR(4)),4);
29 SELECT @O_TaskCode;
30 RETURN;
31 END;
32
33 SELECT TOP 1
34 @SeqVal = a.SeqVal ,
35 @SeqTime = a.SeqTime
36 FROM WCS_Seq a
37 WHERE a.SeqType=@V_SeqType;
38
39 IF @SeqTime = @NowTime
40 SET @NextVal = @SeqVal + 1;
41 ELSE
42 SET @NextVal = 1;
43
44 UPDATE a
45 SET a.SeqVal = @NextVal ,
46 a.SeqTime = @NowTime
47 FROM WCS_Seq a
48 WHERE a.SeqVal = @SeqVal
49 AND a.SeqType=@V_SeqType;
50
51 SET @O_TaskCode=RIGHT(CONVERT(VARCHAR(50),@NowTime,112),6)+RIGHT('0000'+CAST(@NextVal AS VARCHAR(4)),4);
52 END;
使用方法:
1 USE [JX_IMS_CPK]
2 GO
3
4 DECLARE @return_value int,
5 @O_TaskCode varchar(50)
6
7 EXEC @return_value = [dbo].[WCS_GetTaskCode]
8 @O_TaskCode = @O_TaskCode OUTPUT
9
10 SELECT @O_TaskCode as N'@O_TaskCode'
11
12 SELECT 'Return Value' = @return_value
13
14 GO
结果:
2004080008
0
SQL Server序列号的获取的更多相关文章
- SQL Server中如何获取当前年,月,日,时,分,秒
分类: SQL Server select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) ...
- Yii2.0调用sql server存储过程并获取返回值
1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...
- qt调用sql server存储过程并获取output参数
最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...
- SQL Server和MySql获取当前数据库每个表的列数
Sql server:(连接数据库后,点击当前数据库再新建查询) select count(c.name),o.name from syscolumns c left join sysobjects ...
- SQL SERVER 中如何获取日期(一个月的最后一日、一年的第一日等等)
https://blog.csdn.net/deepwishly/article/details/9101307 这是计算一个月第一天的SQL 脚本: SELECT DATEADD(mm, DAT ...
- [SQL Server] 时间处理:获取今天的00:00:00/获取今天的23:59:59
获取今天的00:00:00 SELECT CONVERT(DATETIME,CONVERT(VARCHAR(10),GETDATE(),120)) 获取今天的23:59:59 1.SELECT DAT ...
- 【SQL server基础】获取当前时间并固定格式
Select CONVERT(varchar(), GETDATE(), ): // Select CONVERT(varchar(), GETDATE(), ): Select CONVERT(va ...
- 找到SQL Server的序列号
有时候希望获取当前机器上安装的SQL Server序列号,但注册表中序列号是经过加密的,因此我写了一个小工具获取当前SQL Server的序列号.程序比较粗糙,没有做错误验证. ...
- 获取sql server数据库表结构
if exists (select 1 from sysobjects where name = 'sysproperties'and xtype = 'V')begin DROP VIEW s ...
- Sql Server CONVERT获取当前日期及日期样式
Sql Server CONVERT获取当前日期及日期样式(转)(2012-06-06 12:00:24) 转载▼ // 标签: 杂谈 分类: SQL Sql Server CONVERT样式 获取当 ...
随机推荐
- 搭建第一个web项目
实现使用: 1.创建一个普通java文件 2.Java文件的类名实现HttpServlet 3.重写service方法 4.在WEB-INF下的web.xml中添加请求与servlet类的映射关系 定 ...
- 开源云同步的markdown写作软件——Yosoro
文章目录 前言 简便的项目管理 舒服的写作体验 支持one driver 存在缺点 前言 Yosoro是一款支持在Win.Linux.macOS上使用的写作软件.它的界面设计以及交互上表达出的极简主义 ...
- 大模型重塑软件开发,华为云AI原生应用架构设计与实践分享
在ArchSummit全球架构师峰会2024上,华为云aPaaS平台首席架构师马会彬受邀出席,和技术爱好者分享AI原生应用引擎的架构与实践. AI大模型与AI重塑软件的大趋势下,软件会发生哪些本质的变 ...
- LED虚拟拍摄-跟踪算法
LED虚拟拍摄-跟踪算法 图引用拍摄黑科技,LED虚拟影棚揭秘 标定流程 上面是一台Track设备,现精度比较高的主要是Redspy,Mosys,一般影视用这二种,其底层技术参考SMAL单目+惯性传感 ...
- OpenCV程序练习(一):图像基本操作
展示一张图片 代码 import cv2 img=cv2.imread("demoimg.png") #读取图像 cv2.imshow("demoName",i ...
- Spring MVC 中使用 RESTFul 编程风格
1. Spring MVC 中使用 RESTFul 编程风格 @ 目录 1. Spring MVC 中使用 RESTFul 编程风格 2. RESTFul 编程风格 2.1 RESTFul 是什么 2 ...
- 树莓派4B-GPIO控制步进电机
树莓派4B-GPIO控制步进电机 硬件需求: 步进电机 树莓派 杜邦线 L298N驱动模块 选择步进电机 首先需要确认步进电机,因为步进电机可分为单极性和双极步进电动机两种,这两种电机的驱动方式是不同 ...
- SpringBoot 整合Activiti 7.X 从入门到精通
简介 Activiti 是一个轻量级工作流程和业务流程管理 (BPM) 平台,面向业务人员.开发人员和系统管理员.其核心是一个超快且坚如磐石的 Java BPMN 2 流程引擎.它是开源的,并根据 A ...
- Oracle 递归拼接字段
效果 sql SELECT LISTAGG(T.NAME, ' / ') WITHIN GROUP(ORDER BY LEVEL DESC) AS RESULT FROM S_WORK_RESOURS ...
- Java开发工具和历史版本
eclipse 的历史版本: 版本代号 平台版本 主要版本发行日期 SR1发行日期 SR2发行日期 SR3发行日期 代号名称 N/A 3.0 2004年6月21日 [2] N/A N/A N/A N ...