【问题标题】:Asp Sql Data Uniq Id String + Integer +1 [duplicate]Asp Sql数据唯一ID字符串+整数+1 [重复]
【发布时间】:2020-09-18 09:26:51
【问题描述】:

我想在我的sql表中自动创建一个增量值,但我希望它每次都读取以前的数据和str + int。 例如 ; ABC0001 ABC0002 ABC0003 . . . 待续。

你能帮忙吗

【问题讨论】:

  • 你的ABC000 总是一样的吗? previous data是什么意思
  • 我会注册新的。它将检查先前的值。样本 ;在数据库中,以前的值ABC0001在新建记录时会自动检查并赋值ABC0002。

标签: sql asp.net asp.net-mvc asp.net-mvc-4 asp.net-mvc-3


【解决方案1】:

您可以通过多种方式做到这一点。第一种方法是使用计算列规范的自动化方式。您可以添加一个自动增量列,还可以创建另一个将基于自动增量列计算的列。例如,您可以创建 USER 表:

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')

【讨论】:

    【解决方案2】:

    检查序列是否可以使用 (由于您的数据有限,我假设您将 SQL Server 作为您的 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
    

    【讨论】:

    • 我是 Aspnet 的新手。如何在 asp 端转换这些 sql 命令。 ?
    • @melih,如果我的回答对您有帮助,请将其标记为答案。并且请作为一个单独的问题问你问题(你尝试了什么以及你真正需要什么)。
    • 这些代码。它在不检查数据库中的“id”的情况下执行此操作。所以当我手动输入“ABC00050”时,它不会在新记录中做“ABC00051”
    • @melih,你的要求不够明确
    猜你喜欢
    • 2023-04-08
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    • 2013-05-07
    • 1970-01-01
    相关资源
    最近更新 更多