从Employee中选择isnull(max(id),1000)+1此sql语句的含义是什么?

从Employee中选择isnull(max(id),1000)+1此sql语句的含义是什么?,sql,Sql,我特别想知道为什么这里使用isnull,为什么写1000。请帮助我理解这句话。为什么?不能说。它所做的是为您提供最大ID+1(如果存在),或1001(如果所有ID列都为空)。此语句可能是将从1000开始的ID分配给ID列的伪代码的一部分。编写该语句的人不知道串行/自动增量/标识列是实现此类逻辑的正确方法。具体来说,该语句所做的是选择一个比当前最大id大1的值。如果不存在id,则选择1001,而不是1000+1。如果这是存储过程的一部分,则将使用类似于SELECT scope_identity f

我特别想知道为什么这里使用isnull,为什么写1000。请帮助我理解这句话。

为什么?不能说。它所做的是为您提供最大ID+1(如果存在),或1001(如果所有ID列都为空)。

此语句可能是将从1000开始的ID分配给ID列的伪代码的一部分。编写该语句的人不知道串行/自动增量/标识列是实现此类逻辑的正确方法。具体来说,该语句所做的是选择一个比当前最大id大1的值。如果不存在id,则选择1001,而不是1000+1。如果这是存储过程的一部分,则将使用类似于SELECT scope_identity for SQL Server的内容,您显示的代码存在严重的并发问题。技术上,1001: