sql server 2008如何自增列从001开始

如题。
2024年11月30日 00:51
有4个网友回答
网友(1):

这样吧,再增加一个计算列,计算列从自增列映射过来
比如
create table #test1
(
Id int identity,
IdStr AS right('000'+CAST(Id AS varchar(50)),3) ,
a int
);

插入数据的时候只需要向a列插入数据就行了
insert into #test1(a) values(1);
insert into #test1(a) values(111);
结果中IdStr列就是从001开始自增,当然由于最多只截取3位字符串,所以当数值到达999以后就会从000开始循环递增了。

网友(2):

如果要产生  001 002  这样的 自增列, 可尝试使用 计算列的机制来处理.


CREATE TABLE test_create_tab2x (
  id    INT  IDENTITY(1, 1)  PRIMARY KEY,
  code  AS   RIGHT(Cast((1000 + id) as varchar), 3),
  val   VARCHAR(10)
);    
go  


INSERT INTO test_create_tab2x(val) VALUES ('NO id');
INSERT INTO test_create_tab2x(val) VALUES ('NO id2');
go

SELECT code, val FROM test_create_tab2x;
go

code   val
------ ----------
001    NO id
002    NO id2

(2 行受影响)

网友(3):

序列都是数字的,无法从001开始,只能从1开始,也可以从100开始,就是无法从001开始。
如果需要001,可以自己建立一个表,自己维护这个增长,一般生成字符串的序号,都是这样处理。

网友(4):

你建表的时候直接给加一个identity(001,1)不就可以了吗?

不过我想它可能不认识001,一般都是从1开始