asp sql数据uniq id字符串+整数+1

iovurdzv  于 2021-08-13  发布在  Java
关注(0)|答案(2)|浏览(581)

这个问题在这里已经有答案了

mssql中自动递增的字母数字id(4个答案)
11个月前关门了。
我想在我的sql表中自动生成一个增量值,但是我希望它每次都读取前面的数据和str+int。例如;0001 0002 0003。待续。
你能帮忙吗

h9vpoimq

h9vpoimq1#

你可以用很多方法来做到这一点。第一种方法是使用计算列规范的自动化方法。您可以添加一个自动增量列,也可以创建另一个基于该自动增量列计算的列。例如,可以创建用户表:

CREATE TABLE [dbo].[UserTable](
  [ID] [int] IDENTITY(1,1) NOT NULL,
  [UserNo]  AS ('ABC'+ RIGHT('0000' + CAST(Id AS VARCHAR(4)), 4)) PERSISTED,
  [FirstName] VARCHAR(50),
  [LastName] VARCHAR(50),
  CONSTRAINT [PK_UserTable] PRIMARY KEY ([ID] ASC)
)

现在可以向表中添加数据:

INSERT INTO [dbo].[UserTable] ([FirstName],[LastName])
     VALUES ('sample name','sample family name')
dffbzjpn

dffbzjpn2#

检查序列是否可以被利用(由于您的数据有限,我假设您有sqlserver作为您的dbms)

Create Table T (ColABCIncremtnt varchar(20), Col2 int, Col3 datetime)

CREATE SEQUENCE dbo.Id AS INT 
    START WITH 1 INCREMENT BY 1 MINVALUE 0 NO MAXVALUE

Insert Into T (ColABCIncremtnt,Col2,Col3)
Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 43,getdate()  

Insert Into T (ColABCIncremtnt,Col2,Col3)
Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 72,getdate()  

Insert Into T (ColABCIncremtnt,Col2,Col3)
Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 36,getdate()  

Select * from T

如果要将序列嵌入到表中

ALTER TABLE dbo.T
ADD CONSTRAINT Cnstrnt_Seq
DEFAULT FORMAT((NEXT VALUE FOR dbo.ID),'ABC000#') FOR ColABCIncremtnt;

Insert Into T (Col2,Col3) values
(1,getdate()),  
(2,getdate()),
(3,getdate())

Select * from T

相关问题