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

SQL SERVER 如何处理带字母的自增列--【叶子】的更多相关文章

  1. SQL Server FOR XML PATH 语句的应用---列转行

    经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...

  2. SQL Server分区表,能否按照多个列作为分区函数的分区依据(转载)

    问: Hi, I have a table workcachedetail with 40 million rows which has 8 columns.We decided to partiti ...

  3. Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别

    预备知识:SQLServer的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:iden ...

  4. Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别(转载)

    预备知识:SQL Server的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:ide ...

  5. SQL Server事务回滚对自增键的影响

    SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态 --如果获取当前操作最后插入的identity列的值:select @@ ...

  6. SQL SERVER 自带系统存储过程分类

    目录存储过程 用于实现 ODBC 数据字典功能,并隔离 ODBC 应用程序以使其不受基础系统表更改的影响. 变更数据捕获存储过程 用于启用.禁用.或报告变更数据捕获对象. 游标存储过程 用于实现游标变 ...

  7. Sql Server-使用Sql Server自带的分词功能实现字段关键词提取(分词能力很低,慎用)

    “创建全文索引 启动服务 在SQL Server配置管理工具中,找到'SQL Full-text Filter Daemon Launcher'服务用本地用户启动. 创建全文目录 打开需要创建全文目录 ...

  8. SQL Server 创建表 添加主键 添加列常用SQL语句

    --删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1, ...

  9. SQL Server 创建表 添加主键 添加列常用SQL语句【转】

    --删除主键alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名 ...

随机推荐

  1. 【SAM】BZOJ3998-弦论

    [题目大意] 给出一个字符串,求第k大的子串.(输入1表示子串可重复,0表示不可重复) [思路] 显然,k大子串是后缀自动机的经典题型,可以利用后缀自动机的性质来解决.对于字符串 [前铺1]" ...

  2. 关于Mysort实验的补发博客

    关于本次课后的一些话 关于这次课上的关于sort -nk 2 -t: sort.txt的实验没能在课上做出,有自身的知识不够,没能灵活运用所学知识,以及在当时课上走了会神,回过头来已经不知道该干些什么 ...

  3. [转]jquery后代和子元素的区别

    这是<锋利的jquery>书里的内容 <div>     <p>         <span></span>         <a&g ...

  4. jQuery中,选择器既匹配开头又匹配结尾

    jQuery中,选择器既匹配开头又匹配结尾的方法: [attr^=val]attr$=val [attr^=val][attr$=val]

  5. 统一D3D与OpenGL坐标系统

    作者:游蓝海(http://blog.csdn.net/you_lan_hai) DirectX 3D与OpenGL坐标系统的差异性,给我们带来非常大的麻烦.让跨平台编程的新手非常困惑.近期在做一个跨 ...

  6. [转]Working with Transactions (EF6 Onwards)

    本文转自:http://www.cnblogs.com/xiepeixing/p/5275999.html Working with Transactions (EF6 Onwards) This d ...

  7. 流畅的python第十章序列的修改,散列和切片学习记录

    只要实现了__len__和__getitem__两个方法即可将该类视为序列. 切片原理 动态存取属性 如果实现了__getattr__方法,也要定义__setattr__方法,以防对象行为不一致

  8. asset bundle打包策略

    一次引用的 不单独打包 2次的看大小 小的不单独打包 2次以上单独打包 2这个值 可以测一测 取平衡

  9. Vue使用中遇到问题汇总(一)32个

    1.安装一些需要编译的包:提示没有安装python.build失败等 因为一些 npm 的包安装需要编译的环境,mac 和 linux 都还好,大多都齐全 .window 用户依赖 visual st ...

  10. Spring Security实现后台管理员登录(一)

    一.实现功能 二.数据表设计 为了测试方便,这里创建一个简单的数据表,只含有name和password两个字段.至于角色,权限等,这里都先不考虑. 插入一条数据,name为admin,password ...