不能完全理解的SQL,自增主键,某条记录删除后,能自动找到ID号(高手指点)

不能完全理解的SQL,自增主键,某条记录删除后,能自动找到ID号(高手指点)

 

CREATE   TABLE  img (id_num  int   IDENTITY ( 1 , 1 ), company_name sysname)
INSERT  img(company_name)  VALUES  ( ' New Moon Books ' )
INSERT  img(company_name)  VALUES  ( ' Lucerne Publishing ' )
--  SET IDENTITY_INSERT ON and use in img table.
SET   IDENTITY_INSERT  img  ON

DECLARE   @minidentval   smallint
DECLARE   @nextidentval   smallint
SELECT   @minidentval   =   MIN ( IDENTITYCOL FROM  img
 
IF   @minidentval   =   IDENT_SEED ( ' img ' )
    
SELECT   @nextidentval   =   MIN ( IDENTITYCOL +   IDENT_INCR ( ' img ' )
    
FROM  img t1
    
WHERE   IDENTITYCOL   BETWEEN   IDENT_SEED ( ' img ' AND   32766   AND
      
NOT      EXISTS  ( SELECT   *   FROM  img t2
          
WHERE  t2. IDENTITYCOL   =  t1. IDENTITYCOL   +   IDENT_INCR ( ' img ' ))
 
ELSE
    
SELECT   @nextidentval   =   IDENT_SEED ( ' img ' )
SET   IDENTITY_INSERT  img  OFF
IDENTITYCOL:返回表中identity列.
IDENT_SEED(表名):IDENT_SEED() 函数返回表中标识性字段identity column 的初值.
IDENT_INCR(表名):返回identity列的增量值.
SET IDENTITY_INSERT:允许将显式值插入表的标识列中

还是不能完全理解,请哪位高人分析分析!

你可能感兴趣的:(不能完全理解的SQL,自增主键,某条记录删除后,能自动找到ID号(高手指点))