如何进行DB2 和SQL Server自增列比较,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

最近由于对SQL Server的自增列理解不够好,导致了一个设计问题,做了2个小例子解释一下

SQL Server的自增列
create table identitytest(
id int identity(1,1),
name varchar(20)
)
go
set IDENTITY_INSERT identitytest ON
go
insert into identitytest(id,name)values(1,'test1')
go
insert into identitytest(id,name)values(2,'test2')
go
set IDENTITY_INSERT identitytest OFF
go
insert into identitytest(name)values('test3')
go
set IDENTITY_INSERT identitytest ON
go
insert into identitytest(id,name)values(10000,'test4')
go
set IDENTITY_INSERT identitytest OFF
go
insert into identitytest(name)values('test5')

go
id name
1 test1
2 test2
3 test3
10000 test4
10001 test5
(5 rows affected)
1>

SQL Server的自增列的值取决于表里面的此列的当前的最大值。create table identitytest(
id bigint not null generated by default as identity (start with 1,increment by 1),
name varchar(20)
);
insert into identitytest(id,name)values(1,'test1');
insert into identitytest(id,name)values(2,'test2');
insert into identitytest(name)values('test3');
insert into identitytest(id,name)values(10000,'test4');
insert into identitytest(name)values('test5');

db2 => select * from identitytest;

ID NAME
-------------------- --------------------
1 test1
2 test2
1 test3
10000 test4
2 test5

5 record(s) selected.

db2 =>

DB2的自增列,当你手工插入自增列的值的时候,DB2会无视你插入的值,DB2用自增列的定义产生值。

看完上述内容,你们掌握如何进行DB2 和SQL Server自增列比较的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!