Sql server 如何在SQL Server中选择列值的最大值和相应的增量?

Sql server 如何在SQL Server中选择列值的最大值和相应的增量?,sql-server,sql-server-2014,Sql Server,Sql Server 2014,我有一个名为Employee的表,其中Id(Id自动递增)如下所示: id ---- 10 11 12 13 1000 1001 1002 我的要求是:无论何时将任何数据从不同的来源插入Employee表中,我只想增加2位ID值 像这里一样,如果插入了数据,那么它应该检查MAX(2位ID)并将其递增为14,然后插入数据。它不应增加为1003 如果我不清楚,请告诉我。我不知道为什么需要这个,但您可以使用DBCC CHECKIDENT重新设定递增值的种子

我有一个名为
Employee
的表,其中Id(
Id
自动递增)如下所示:

id  
----
10  
11  
12  
13   
1000   
1001   
1002     
我的要求是:无论何时将任何数据从不同的来源插入
Employee
表中,我只想增加2位ID值

像这里一样,如果插入了数据,那么它应该检查MAX(2位ID)并将其递增为14,然后插入数据。它不应增加为1003


如果我不清楚,请告诉我。

我不知道为什么需要这个,但您可以使用
DBCC CHECKIDENT
重新设定递增值的种子:

create table test(id int identity(1, 1), col int)

insert into test values(1),(2)

set identity_insert test on

insert into test(id, col) values(1001, 1001),(1002, 1002)

set identity_insert test off

select * from test

dbcc checkident(test, RESEED, 2)

insert into test values(3)--inserts 3, 3

select * from test

我正在寻找这样的sql查询:从ID<1000的Employee中选择MAX(ID)。只是为了让你们都明白。然后增加IDFirst想到的增量:为什么不修复这3条记录(假设只有3条记录>1000)并分别设置它们的ID 14、15、16,然后重新设置表的种子,以在17开始ID?基本上,修复您的数据,而不是实施一些疯狂的解决方案,这些解决方案只适用于接下来的987条记录。这是一种糟糕的做法,最终会咬到您的屁股。我已经见过很多次了——我不知道为什么,但似乎像这样的漏洞困扰了很多电脑迷。就让它去吧。我保证,在管理该ID字段方面,您永远不会比SQL Server做得更好。我还向你保证你永远不会用完整数-我刚刚参观了整数工厂,他们向我保证他们会继续生产更多的整数。@sage Its juszz我提到过一个例子。。在真实场景中。。有数百条记录啊,这是个坏主意,我假设这个id在其他表中用作外键。如果您不小心使用了以前使用过的id,则可能会使所有其他表失去同步。