首页 > 解决方案 > SQL Server 增加 1 个主键 varchar

问题描述

我有这张桌子“艺术”:

COD - varchar(20) PK
DES - varchar(50)

简单的示例数据是:

COD       DES
MM000000  AA
MM000001  BB
MM000010  CC
MM000145  DD

如何在每次插入时将 COD 列增加 1?最终的 pk 格式必须是:'MM' + 6 位

标签: sqlsql-serverprimary-keysql-insert

解决方案


DECLARE @a INT = 0;
WHILE @a < 100 
BEGIN
    SELECT 'MM' + RIGHT('000000' + CAST(@A as VARCHAR(6)),6)
    SET @a += 1
END


CREATE TABLE #a 
(
    Id  INT IDENTITY(1,1),
    Code    AS 'MM' + RIGHT('000000' + CAST(Id as VARCHAR(255)),6)
)

INSERT INTO #a DEFAULT VALUES
INSERT INTO #a DEFAULT VALUES
INSERT INTO #a DEFAULT VALUES

SELECt * FROM #a

但身份可能是一个增长不均衡的价值


推荐阅读