我有一张空白表,我想获得该表的下一个当前身份标识,
Select IDENT_CURRENT ('CityPhotoGallery') + IDENT_INCR('CityPhotoGallery')
在这种情况下,它将Next idnetity ID设为2
应该是1
答案 0 :(得分:1)
根据文件:
当IDENT_CURRENT值为NULL时(因为表从不 包含行或已被截断的IDENT_CURRENT函数 返回种子值。
http://technet.microsoft.com/en-us/library/ms175098.aspx
这意味着,如果您的种子为1,则之前的和插入第一行之后的都会IDENT_CURRENT()=1
。
即使我同意您应该在更高级别描述您想要达到的目标,但在这种情况下,如果表格为空,则需要CASE WHEN
来考虑。
特别是,你应该小心,因为:
使用IDENT_CURRENT预测下一次生成时要小心 身份价值。实际生成的值可能不同于 IDENT_CURRENT加上IDENT_INCR,因为其他人执行了插入操作 会话。
答案 1 :(得分:0)
NULLIF(IDENT_CURRENT('CityPhotoGallery'),1)
我认为它适用于新表