首页 > 解决方案 > SQL Server-如何使 varchar 自动递增

问题描述

我正在尝试运行以下脚本,但它失败了,我不知道为什么:

DROP TABLE table;
CREATE SEQUENCE seq START WITH 0;
CREATE TABLE table (
    id VARCHAR(512) PRIMARY KEY AS ('0000000000' + CAST(NEXT VALUE FOR seq AS VARCHAR(512)), 10),
    field VARCHAR(512),
    field VARCHAR(512)
);

我想将数字转换为字符串以匹配代码其他部分的要求

标签: sqlsql-server

解决方案


不同的方法怎么样?只需identity为表格使用一列。然后添加一个生成的列来提供您的字符串表示:

CREATE TABLE t (
    t_id int identity(1, 1) primary key,
    t_id_str as (right('0000000000' + CAST(t_id AS VARCHAR(512)), 10))
);

推荐阅读