gpt4 book ai didi

sql - 需要在 SQL Server 2012 中自动递增字符串

转载 作者:行者123 更新时间:2023-12-01 22:26:12 27 4
gpt4 key购买 nike

考虑 SQL Server 2012 中的表

789-0000000

上面的数字将被视为 SQL Server 2012 中的字符串,但每当我更新记录时,我都需要递增到 1。

例如:

  • 当我更新记录 1 时,它应该增加到 789-0000001
  • 当我更新记录 2 时,它应该增加到 789-0000002

最后应该只增加 789-0000000

最佳答案

最好的解决办法是使用

  • 一个ID INT IDENTITY(1,1)列让 SQL Server 处理您的数值的自动递增
  • 一个计算的、持久的列,用于将该数值转换为您需要的值

那么试试这个:

CREATE TABLE dbo.YourTable
(ID INT IDENTITY(1,1) NOT NULL PRIMARY KEY CLUSTERED,
CompanyID AS '789-' + RIGHT('000000' + CAST(ID AS VARCHAR(7)), 7) PERSISTED,
.... your other columns here....
)

现在,每次向 dbo.YourTable 中插入一行没有为 ID 指定值或 CompanyID :

INSERT INTO dbo.YourTable(Col1, Col2, ..., ColN)
VALUES (Val1, Val2, ....., ValN)

然后 SQL Server 将自动且安全地增加您的 ID值(value),和CompanyID将包含类似 789-0000001 的值, 789-0000002 ,......等等——自动、安全、可靠、无重复。

关于sql - 需要在 SQL Server 2012 中自动递增字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33969020/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com