编号格式:关键字+年月日时+3位流水号

CREATE TRIGGER [dbo].[insert_xxtable_number]
ON [dbo].[xxtable]
AFTER INSERT
AS
BEGINbegin tran        -- 开启事务,transcation 的简写declare @errorNo int    --定义变量,用于记录事务执行过程中的错误次数set @errorNo=0begin try  DECLARE @xx_number varchar(20), -- 编号@maxxx_numbers varchar(20),@maxxx_number varchar(20), @getdate varchar(20),@num int,@id int   SELECT TOP 1 @id = [xx_id] FROM inserted select @getdate=convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')SELECT @maxxx_numbers=max(xx_number) FROM xxtable  SELECT @maxxx_number=max(xx_number) FROM xxtable  where @getdate=substring(@maxxx_numbers,3,8)select @xx_number=case when isnull(@maxxx_number,'0')='0'  then 'xx'+convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')+'001' else case when len(substring(@maxxx_number,11,3)+1)=1 then 'xx'+convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')+'00'+convert(char(3),substring(@maxxx_number,11,3)+1)when len(substring(@maxxx_number,11,3)+1)=2 then 'xx'+convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')+'0'+convert(char(3),substring(@maxxx_number,11,3)+1)else case when substring(@maxxx_number,11,3)+1>999 then 'xx'+convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')+convert(char(4),substring(@maxxx_number,11,3)+1)else 'xx'+convert(char(6),getdate(),12)+REPLACE(convert(char(2),getdate(),14),':','')+convert(char(3),substring(@maxxx_number,11,3)+1) end end end from xxtable update xxtable set xx_number=@xx_number where xx_id=@idend trybegin catchselect ERROR_NUMBER() errorNumber,        --错误代码ERROR_SEVERITY() errorSeverity,    --错误严重级别,级别小于10 try catch 捕获不到ERROR_STATE() errorState,        --错误状态码ERROR_PROCEDURE() errorProcedure,    --出现错误的存储过程或触发器的名称ERROR_LINE() errorLine,        --发生错误的行号ERROR_MESSAGE() errorMessage        --错误的具体信息if(@@trancount>0)    -- @@trancount 系统全局变量,事务开启 @@trancount 值+1,判断事务是否开启beginrollback tran;        -- 回滚事务endend catchif(@@trancount>0)begincommit tran;        -- 提交事务end
END

SQL触发器新增自动生成唯一编号相关推荐

  1. oracle创建表,序列,触发器,自动生成唯一主键

    数据库oracle和mysql插入数据的区别? mysql数据库主键字段是increament,则插入数据不需要插入主键字段.数据库会自动生成主键 oracle数据库主键字段必须创建序列,则插入数据必 ...

  2. sql server 按照日期自动生成单据编号的函数

    一.sql server 按照日期自动生成单据编号的函数,格式为##08080001,##表示打头的单据字符,然后是年月和流水编号. 二.传入的参数为单据的打头字符和生成单据的日期 三.一般的调用格式 ...

  3. SQL Server镜像自动生成脚本

    SQL Server镜像自动生成脚本 镜像的搭建非常繁琐,花了一点时间写了这个脚本,方便大家搭建镜像 执行完这个镜像脚本之后,最好在每台机器都绑定一下hosts文件,不然的话,镜像可能会不work 1 ...

  4. python学习之路—自动生成唯一标识(md5加密方式)

    前言 在python存入数据库时,如果数据库的主键不是自增方式,那么我们可能需要自己生成一个唯一标识符,现在最好的方法就是md5加密生成的32位作为主键,本文将会介绍python的两种自动生成唯一标识 ...

  5. jeecg-boot自动生成代码_一款自动生成唯一头像的开源代码库

    很多网站会给默认登陆的用户生成默认的头像,包括 GitHub 其实就有,你想知道是怎么实现的么? 今天的推荐的就是一个能够按唯一 Email.ID 或者用户名生成唯一头像的开源代码库:generate ...

  6. wps文档插入一个表格,怎么取消自动生成的编号

    wps是专有名词太多了么,这个里边弄了半天,上火. 不多说,浪费时间了,那就得记下来:不想要的如下: 怎么取消这个f,g,h,i自动生成的编号? wps文字 (左上角) -->格式 --> ...

  7. websocket中自动生成身份编号(获取sessionID,将sid值设置为sessionID的方法),并在页面刷新时沿用sid的解决方案

    websocket如果需要1对1通信,或者说将服务器数据发送到指定的客户端上,就需要给每一个新生成的websocket加上编号.比较常见的,是在地址映射中加上编号,比如: @ServerEndpoin ...

  8. mysql 单据编号生成_mysql自动生成单据编号

    这一句SQL就可以直接生成唯一的单据编号,方便直接插入主表 select CONCAT ('test_', DATE_FORMAT(now(), '%Y%m%d'), RIGHT(CONCAT ('0 ...

  9. oracle创建视图与生成唯一编号

    Oracle的数据库对象分为五种:表,视图,序列,索引和同义词. 一.视图 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表. 视图 ...

最新文章

  1. arduino自带程序_arduino代码运行时间测试函数,代码性能运行时间测试方法
  2. zabbix查看mysql同步_Zabbix 检测Mysql数据库的主从同步
  3. 领域应用 | 知识图谱的技术与应用
  4. Idea更改console控制台 日志颜色(非插件)
  5. Filecoin Gas基础费率大幅回升至2.78 nanoFIL
  6. The path C:\Oracle\Middleware\wlserver_10.3 contains the wrong version of WebLogic Server. Expect
  7. 从0开始,html5零基础入门教程,快来看看!
  8. round()函数的用法
  9. 光盘中的vob格式怎么转换成mp4格式
  10. 百度BMap开发(基础入门知识)
  11. android拷贝设备断连接,android – Firebase Messaging Inactivity,断开与AppMeasurementService的连接[复制]...
  12. 快速排序--QuickSort()--递归版本
  13. 猫眼数据SQLITE保存格式
  14. windows主机中的文件无法拖拽到虚拟机的Ubuntu系统中(即使安装了vmtools)
  15. 【从0到1搭建LoRa物联网】8、国产LoRa终端ASR6505 PingPong通信
  16. 小猫爪:S32K3学习笔记21-S32K3之SAF及其应用
  17. java获取gps 串口_从串口读取GPS数据
  18. 2021大数据助力精准医疗产业沙龙 | 有孚网络吕鑫:基于专有云打造生物信息云平台
  19. 微信开发者工具代码管理
  20. quilt命令使用介绍

热门文章

  1. python计算组合数c(ni)_用Python计算组合数,通过
  2. 面试记录 1 美团电话面试
  3. Python基础;身份证的秘密
  4. 记redis中向list进行lpush和lrange时的小细节(初学者易犯)
  5. Altium Designer 18系统参数选项介绍及常规设置
  6. bzoj 2440 SQF - 莫比乌斯反演
  7. iphone不能网络连接到服务器未响应,iphone用usb上网没反应怎么办
  8. 完成pdf转换成jpg格式的方法
  9. 实验二 任务的基本管理
  10. 一文彻底解决C++中的重载、重写和隐藏操作