【发布时间】:2016-06-16 12:41:47
【问题描述】:
我正在尝试从 sql 的自动增量列中添加范围或排除数字。
我们有一个关于作业编号的自动递增列,因为每个作业都是唯一的。问题是我们也将自己视为客户,作业编号为 99999,而其他作业编号以 10500 结尾。当自动递增发生时,它会从 99999 开始。这有一种方法可以排除这个或我是否必须手动设置 IDENTITY_INSERT ON 并自己插入 ID?
提前致谢
【问题讨论】:
-
如果您使用
SET IDENTITY_INSERT ON并插入值 99999,则标识列将使用 100000 作为其下一个值。您不能在不影响标识值本身的情况下将“序列外”值插入标识列...... -
所以没有办法将范围设置为自动递增?
-
否 - 如果您需要范围和类似的东西,您需要查看自 SQL Server 2012 及更高版本起可用的
SEQUENCE对象 -
或使用 负值 例如
-1为您的“特殊”内部工作 - 这不会“破坏”您的身份价值! -
谢谢 Marc_s。将最挑衅地调查 SQL SEQUENCE。看起来很有希望。
标签: sql sql-server auto-increment identity-insert