SQL SERVER 如何處理帶字母的自增列–【葉子】

來源:互聯網
上載者:User
--需求說明:/*id         col---------- ----------AB00001    aAB00002    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 allselect '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 aAB00002 bAB00003 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 allselect 'AB00002','b'insert into [macotb](col) select 'c'update [macotb] set id='AB'+right('00000'+ltrim([no]),5) where [no]=@@identityselect id,col from [macotb]/*id      col------- ----AB00001 aAB00002 bAB00003 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      aAB00002      b*/insert into [macotb](col) select 'c' union all select 'd'select id,col from [macotb]/*id           col------------ ----AB00001      aAB00002      bAB00003      cAB00004      d*/--葉子建議使用第三種方式!
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.