建表:

 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序列号的获取的更多相关文章

  1. SQL Server中如何获取当前年,月,日,时,分,秒

    分类: SQL Server  select GETDATE() as '当前日期',DateName(year,GetDate()) as '年',DateName(month,GetDate()) ...

  2. Yii2.0调用sql server存储过程并获取返回值

    1.首先展示创建sql server存储过程的语句,创建一个简单的存储过程,测试用. SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE P ...

  3. qt调用sql server存储过程并获取output参数

    最近新做的一个项目需要使用qt5连接另一台机器上的sql server,虽然网上已有类似文章,但还是有些其中很少提及的问题,故在这里汇总下: qt连接sql server可以参考这篇文章: <Q ...

  4. SQL Server和MySql获取当前数据库每个表的列数

    Sql server:(连接数据库后,点击当前数据库再新建查询) select count(c.name),o.name from syscolumns c left join sysobjects ...

  5. SQL SERVER 中如何获取日期(一个月的最后一日、一年的第一日等等)

    https://blog.csdn.net/deepwishly/article/details/9101307 这是计算一个月第一天的SQL 脚本:   SELECT DATEADD(mm, DAT ...

  6. [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 ...

  7. 【SQL server基础】获取当前时间并固定格式

    Select CONVERT(varchar(), GETDATE(), ): // Select CONVERT(varchar(), GETDATE(), ): Select CONVERT(va ...

  8. 找到SQL Server的序列号

          有时候希望获取当前机器上安装的SQL Server序列号,但注册表中序列号是经过加密的,因此我写了一个小工具获取当前SQL Server的序列号.程序比较粗糙,没有做错误验证.       ...

  9. 获取sql server数据库表结构

    if exists (select 1 from sysobjects where name = 'sysproperties'and xtype = 'V')begin    DROP VIEW s ...

  10. Sql Server CONVERT获取当前日期及日期样式

    Sql Server CONVERT获取当前日期及日期样式(转)(2012-06-06 12:00:24) 转载▼ // 标签: 杂谈 分类: SQL Sql Server CONVERT样式 获取当 ...

随机推荐

  1. 新浪微博动态 RSA 分析图文+登录

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 新浪微博动态 RSA 分析图文+登录 日期:2016-10 ...

  2. Linux 内核:设备树 学习总结

    背景 之前写过设备树DTS 学习:学习总结(应用篇)的学习,但是是偏向于应用:这次针对了设备树的架构以及在驱动中的使用流程做了补充. 基于 Linux 内核 v4.14. 目录 标题 说明 设备树:d ...

  3. Mac mysql 5.7.x 设置服务开机自启动

    在终端输入 sudo vi /Library/LaunchDaemons/com.mysql.mysql.plist 输入以下内容 <?xml version="1.0" e ...

  4. 算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介

    1. RNN(Recurrent Neural Network) 时间轴 1986年,RNN 模型首次由 David Rumelhart 等人提出,旨在处理序列数据. 关键技术 循环结构 序列处理 长 ...

  5. 第一节 线性数据结构 STL

    vector 容器 迭代器 vector<int> v{1, 0, 0, 8, 6}; for(vector<int>::interator it = v.begin(); i ...

  6. C#实现单例模式的6种方法

    介绍 单例模式是软件工程学中最富盛名的设计模式之一.从本质上看,单例模式只允许被其自身实例化一次,且向外部提供了一个访问该实例的接口.通常来说,单例对象进行实例化时一般不带参数,因为如果不同的实例化请 ...

  7. ABC347

    A link 很简单 遍历,判断模\(k\)是否为\(0\),如果为\(0\),输出\(a_i/k\). 点击查看代码 #include<bits/stdc++.h> using name ...

  8. 洛谷P1029 [NOIP2001 普及组] 最大公约数和最小公倍数问题

    [NOIP2001 普及组] 最大公约数和最小公倍数问题 题目描述 洛谷题目链接:https://www.luogu.com.cn/problem/P1029 输入两个正整数 x, y,求出满足下列条 ...

  9. 关于visual studio的一个bug

    本人初学链表,如有错误多多包涵 快马加鞭,这期只写一个问题.我好像在vs里面发现了一个bug 不管是vs2022还是vs2010都无法正常运行.关于cin.string.链表的问题 #include& ...

  10. 【DataBase】MySQL 05 基础查询

    MySQL数据库 05 基础查询 视频参考自:P18 - P27 https://www.bilibili.com/video/BV1xW411u7ax 配套的SQL脚本:https://shimo. ...