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

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

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

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

h9vpoimq

h9vpoimq1#

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

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

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

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

dffbzjpn2#

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

  1. Create Table T (ColABCIncremtnt varchar(20), Col2 int, Col3 datetime)
  2. CREATE SEQUENCE dbo.Id AS INT
  3. START WITH 1 INCREMENT BY 1 MINVALUE 0 NO MAXVALUE
  4. Insert Into T (ColABCIncremtnt,Col2,Col3)
  5. Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 43,getdate()
  6. Insert Into T (ColABCIncremtnt,Col2,Col3)
  7. Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 72,getdate()
  8. Insert Into T (ColABCIncremtnt,Col2,Col3)
  9. Select 'ABC000' + Convert(varchar(10), next value for dbo.Id), 36,getdate()
  10. Select * from T

如果要将序列嵌入到表中

  1. ALTER TABLE dbo.T
  2. ADD CONSTRAINT Cnstrnt_Seq
  3. DEFAULT FORMAT((NEXT VALUE FOR dbo.ID),'ABC000#') FOR ColABCIncremtnt;
  4. Insert Into T (Col2,Col3) values
  5. (1,getdate()),
  6. (2,getdate()),
  7. (3,getdate())
  8. Select * from T
展开查看全部

相关问题