博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER 如何处理带字母的自增列--【叶子】
阅读量:4983 次
发布时间:2019-06-12

本文共 1485 字,大约阅读时间需要 4 分钟。

  1. --需求说明:  
  2. /*  
  3. id         col  
  4. ---------- ----------  
  5. AB00001    a  
  6. AB00002    b  
  7. --当再插入数据的时候让id自动变成AB00003  
  8. */  
  9.   
  10. --1.求最大值法(高并发时不适用,只是介绍个思路)  
  11. --测试数据  
  12.   
  13. if object_id('[macotb]'is not null   
  14. drop table [macotb]  
  15. create table [macotb] (id varchar(7),col varchar(1))  
  16. insert into [macotb]  
  17. select 'AB00001','a' union all  
  18. select 'AB00002','b'  
  19.   
  20. declare @max varchar(7)  
  21. select @max='AB'+right('00000'+ltrim(max(replace(id,'AB','')+1)),5) from [macotb]  
  22. insert into [macotb] select @max,'c'  
  23.   
  24. select * from [macotb]  
  25. /*  
  26. id      col  
  27. ------- ----  
  28. AB00001 a  
  29. AB00002 b  
  30. AB00003 c  
  31. */  
  32.   
  33. --2.利用@@identity,分步处理  
  34. if object_id('[macotb]'is not null   
  35. drop table [macotb]  
  36.   
  37. create table [macotb] ([noint identity,id varchar(7),col varchar(1))  
  38. insert into [macotb]  
  39. select 'AB00001','a' union all  
  40. select 'AB00002','b'  
  41.   
  42. insert into [macotb](col) select 'c'  
  43. update [macotb]   
  44. set id='AB'+right('00000'+ltrim([no]),5) where [no]=@@identity  
  45.   
  46. select id,col from [macotb]  
  47. /*  
  48. id      col  
  49. ------- ----  
  50. AB00001 a  
  51. AB00002 b  
  52. AB00003 c  
  53. */  
  54.   
  55. --3.直接添加运算列  
  56. if object_id('[macotb]'is not null   
  57. drop table [macotb]  
  58.   
  59. create table [macotb]   
  60. (  
  61.     [noint identity,  
  62.     id as ('AB'+right('00000'+ltrim([no]),5)),  
  63.     col varchar(1)  
  64. )  
  65.   
  66. insert into [macotb](col) select 'a' union all select 'b'  
  67.   
  68. select id,col from [macotb]  
  69. /*  
  70. id           col  
  71. ------------ ----  
  72. AB00001      a  
  73. AB00002      b  
  74. */  
  75.   
  76. insert into [macotb](col) select 'c' union all select 'd'  
  77. select id,col from [macotb]  
  78. /*  
  79. id           col  
  80. ------------ ----  
  81. AB00001      a  
  82. AB00002      b  
  83. AB00003      c  
  84. AB00004      d  
  85. */  
  86.   
  87. --叶子建议使用第三种方式!  

转载于:https://www.cnblogs.com/douqiumiao/p/3365313.html

你可能感兴趣的文章
c#必会知识点
查看>>
网页使用MD5加密
查看>>
JS 基础
查看>>
HBase shell 中的十六进制数值表示
查看>>
Python3 中 configparser 模块解析配置的用法详解
查看>>
新手android环境搭建、debug调试及各种插件安装__图文全解
查看>>
未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序 win2008R2 X64 IIS7.5
查看>>
Diffuse贴图+Lightmap+Ambient
查看>>
矩阵树定理
查看>>
[算法]Evaluate Reverse Polish Notation
查看>>
go语言之进阶篇接口的定义和实现以及接口的继承
查看>>
SmartPhone手机网站的制作
查看>>
自适应全屏与居中算法
查看>>
构建之法阅读笔记(一)
查看>>
帮助你设计的50个自由和新鲜的图标集
查看>>
Glusterfs[转]
查看>>
javascript缩写
查看>>
GA来源分析
查看>>
常用统计指标
查看>>
iOS设置圆角矩形和阴影效果
查看>>