当前位置:  数据库>sqlserver

sql server处理带字母的自增列的三种方式

    来源: 互联网  发布时间:2014-08-29

    本文导语:  sql server处理带字母的自增列的三种方式,供大家学习参考。   代码如下: --需求说明: /* id col ---------- ---------- AB00001a AB00002b --当再插入数据的时候让id自动变成AB00003 */   --1.求最大值法(高并发时不适用,只是介...

sql server处理带字母的自增列的三种方式,供大家学习参考。
 

代码如下:
--需求说明:
/*
id col
---------- ----------
AB00001a
AB00002b
--当再插入数据的时候让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 2005 单词首字母大写的设置代码
  • sql server获取汉字首字母的函数(第二版)
  • sql server获取汉字首字母的函数(第一版)
  • sql server获取汉字首字母的函数(第三版)
  • sql server获取汉字首字母的函数(第四版)
  • sql server自动生成拼音首字母的函数
  • sql存储过程获取汉字拼音头字母函数
  • oracle中得到一条SQL语句的执行时间的两种方式
  • t-sql清空表数据的两种方式示例(truncate and delete)
  • SQL Server通用分页存储过程(非游标方式)
  • SQL SERVER 的SQL语句优化方式小结
  • 数据库连接方式汇总(sql与oracle等)
  • 通过T_sql语句向其中一次填入一条数据或一次填入多条数据的方式填充数据
  • Oracle 表三种连接方式使用介绍(sql优化)
  • LINQ to SQL:处理char(1)字段的方式会引起全表扫描问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 如何实现连接一次数据库,提交多个sql语句。(sql的批处理)
  • SQL语句中含有乘号报错的处理办法
  • SQL处理包 LocalSQL
  • SqlServer中用exec处理sql字符串中含有变量的小例子
  • sqlserver中通过osql/ocmd批处理批量执行sql文件的方法
  • 初学者问题:标准的sql里有处理日期的函数吗?
  • jsp处理sql语句的问题,急!马上给分!
  • C处理SQL命令字符串的函数哪里有?
  • SQL Server2008数据库导入导出兼容性处理方案
  • 浅析SQL存储过程和事务处理
  • MS SQL Server2014链接到MS SQL Server 2000的解决方案及问题处理
  • 请教:如何用shell实现指定log文件(比如a.log)中的指定内容(SQL_ID和SQL的处理部分)的收集
  • mysql从执行.sql文件时处理n换行的问题
  • sql server日期格式化处理的例子
  • sql数据库批量处理脚本
  • mysql从执行.sql文件时处理n换行的问题 iis7站长之家
  • SQL 重复记录问题的处理方法小结
  • SQL处理多级分类,查询结果呈树形结构
  • sql server 存储过程的异常处理
  • SQL学习笔记七函数 数字,日期,类型转换,空值处理,case
  • java命名空间java.sql接口statement的类成员方法: executeupdate定义及介绍
  • 请问,这是什么错误!java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][Named Pipes]??????? SQL Server?虽然分少,但一定给,只要您是前5名回复者中最好的以为!
  • java命名空间java.sql接口connection的类成员方法: nativesql定义及介绍
  • SQL查询分析工具 SQL Workbench/J
  • java命名空间java.sql接口preparedstatement的类成员方法: executeupdate定义及介绍
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • java命名空间java.sql接口rowid的类成员方法: getbytes定义及介绍
  • SQL Server统计SQL语句执行时间的脚本
  • java命名空间java.sql接口ref的类成员方法: getbasetypename定义及介绍
  • SQL客户端软件 PKLite SQL Client
  • java命名空间java.sql接口databasemetadata的类成员方法: getsqlkeywords定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3