SQL SERVER 如何处理带字母的自增列--【叶子】
- --需求说明:
- /*
- id col
- ---------- ----------
- AB00001 a
- AB00002 b
- --当再插入数据的时候让id自动变成AB00003
- */
- --1.求最大值法(高并发时不适用,只是介绍个思路)
- --测试数据
- if object_id('[macotb]') is not null
- drop table [macotb]
- create table [macotb] (id varchar(7),col varchar(1))
- insert into [macotb]
- select 'AB00001','a' union all
- select 'AB00002','b'
- declare @max varchar(7)
- select @max='AB'+right('00000'+ltrim(max(replace(id,'AB','')+1)),5) from [macotb]
- insert into [macotb] select @max,'c'
- select * from [macotb]
- /*
- id col
- ------- ----
- AB00001 a
- AB00002 b
- AB00003 c
- */
- --2.利用@@identity,分步处理
- if object_id('[macotb]') is not null
- drop table [macotb]
- create table [macotb] ([no] int identity,id varchar(7),col varchar(1))
- insert into [macotb]
- select 'AB00001','a' union all
- select 'AB00002','b'
- insert into [macotb](col) select 'c'
- update [macotb]
- set id='AB'+right('00000'+ltrim([no]),5) where [no]=@@identity
- select id,col from [macotb]
- /*
- id col
- ------- ----
- AB00001 a
- AB00002 b
- AB00003 c
- */
- --3.直接添加运算列
- if object_id('[macotb]') is not null
- drop table [macotb]
- create table [macotb]
- (
- [no] int identity,
- id as ('AB'+right('00000'+ltrim([no]),5)),
- col varchar(1)
- )
- insert into [macotb](col) select 'a' union all select 'b'
- select id,col from [macotb]
- /*
- id col
- ------------ ----
- AB00001 a
- AB00002 b
- */
- insert into [macotb](col) select 'c' union all select 'd'
- select id,col from [macotb]
- /*
- id col
- ------------ ----
- AB00001 a
- AB00002 b
- AB00003 c
- AB00004 d
- */
- --叶子建议使用第三种方式!
SQL SERVER 如何处理带字母的自增列--【叶子】的更多相关文章
- SQL Server FOR XML PATH 语句的应用---列转行
经常在论坛看到高手使用了 for xml path,由于是搜索一下,记录了详细的使用方法.在SQL Server中利用 FOR XML PATH 语句能够把查询的数据生成XML数据,下面是它的一些应用 ...
- SQL Server分区表,能否按照多个列作为分区函数的分区依据(转载)
问: Hi, I have a table workcachedetail with 40 million rows which has 8 columns.We decided to partiti ...
- Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别
预备知识:SQLServer的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:iden ...
- Sql Server插入数据并返回自增ID,@@IDENTITY,SCOPE_IDENTITY和IDENT_CURRENT的区别(转载)
预备知识:SQL Server的IDENTITY关键字IDENTITY关键字代表的是一个函数,而不是identity属性.在access里边没有这个函数,所以在access不能用这个语句.语法:ide ...
- SQL Server事务回滚对自增键的影响
SQL Server事务回滚时是删除原先插入导致的自增值,也就是回滚之前你你插入一条数据导致自增键加1,回滚之后还是加1的状态 --如果获取当前操作最后插入的identity列的值:select @@ ...
- SQL SERVER 自带系统存储过程分类
目录存储过程 用于实现 ODBC 数据字典功能,并隔离 ODBC 应用程序以使其不受基础系统表更改的影响. 变更数据捕获存储过程 用于启用.禁用.或报告变更数据捕获对象. 游标存储过程 用于实现游标变 ...
- Sql Server-使用Sql Server自带的分词功能实现字段关键词提取(分词能力很低,慎用)
“创建全文索引 启动服务 在SQL Server配置管理工具中,找到'SQL Full-text Filter Daemon Launcher'服务用本地用户启动. 创建全文目录 打开需要创建全文目录 ...
- SQL Server 创建表 添加主键 添加列常用SQL语句
--删除主键 alter table 表名 drop constraint 主键名 --添加主键 alter table 表名 add constraint 主键名 primary key(字段名1, ...
- SQL Server 创建表 添加主键 添加列常用SQL语句【转】
--删除主键alter table 表名 drop constraint 主键名--添加主键alter table 表名 add constraint 主键名 primary key(字段名1,字段名 ...
随机推荐
- HDU 5967 小R与手机(动态树)
[题目链接] http://acm.hdu.edu.cn/showproblem.php?pid=5967 [题目大意] 给出一张图,每个点仅连一条有向边,或者不连, 要求查询在可更改有向边的情况每个 ...
- http请求 url 传递参数(特殊字符)解决方法
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值 1. + URL 中+号表示空格 %2B ...
- Linux下使用cut切割有规则的列文本
data.txt NO Name Mark Percent 1 Sarath 45 90 2 Alex 49 98 3 Anu 45 90 分隔符(定界符)为Tab 制表符 如果我要取得第二列,所有人 ...
- 2014DNIOS视频教程(5-9)
2014DNIOS视频教程(5-9) 联系2g32@sina.com
- android源码包下载
http://rgruet.free.fr/public/ 其他下载地址:http://cid-b50f9d5897331c44.office.live.com/browse.aspx/Android ...
- java访问ad域
1.活动目录(AD) Active Directory 是用于 Windows Server 的目录服务.它存储着网络上各种对象的有关信息,并使该信息易于管理员和用户查找及使用.Active Dire ...
- Hive 内建操作符与函数开发——深入浅出学Hive
第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比较: > •大 ...
- java/eclipse/myeclipse建立.properties文件的方法
相比较来说,Java程序的编写相对简单很多,多数文件都可以通过编写文本文件生成! 对于不用IDE的java程序来讲,只需要右键新建>文本文件,建立好以后写好代码,另存为xx.prop ...
- http://www.blogjava.net/zJun/archive/2006/06/28/55511.html
http://www.blogjava.net/zJun/archive/2006/06/28/55511.html http://www.cnblogs.com/alipayhutu/archive ...
- 一起talk C栗子吧(第二十七回:C语言实例--插入排序)
各位看官们,大家好.上一回中咱们说的是冒泡排序的样例.这一回咱们说的样例是:插入排序. 闲话休 提,言归正转.让我们一起talk C栗子吧. 看官们,我们这回说的插入排序和前一回说的冒泡排序一样.也是 ...