是否可以在SQL server中管理标识范围?

是否可以在SQL server中管理标识范围?,sql,identity,Sql,Identity,是否可以在SQL Server中管理标识范围 如果我在1对1的DB 1和10000对2的DB中设置种子 在这种情况下,如果我同步两个DB,DB one只会增加10000 假设我想要这个: DB1->id开始[0-9000] DB2->id开始[10000-19000] 解决方案: ALTER TABLE dbo.* WITH NOCHECK ADD CONSTRAINT Id_Range_Constraint CHECK(ID BETWEEN 10000 AND 19999

是否可以在SQL Server中管理标识范围

如果我在1对1的DB 1和10000对2的DB中设置种子

在这种情况下,如果我同步两个DB,DB one只会增加10000

假设我想要这个:

  • DB1->id开始[0-9000]
  • DB2->id开始[10000-19000]
解决方案:

ALTER TABLE dbo.* WITH NOCHECK 
    ADD CONSTRAINT Id_Range_Constraint
    CHECK(ID BETWEEN 10000 AND 19999)

您可以在两个数据库中为问题中指定的范围创建约束。但请记住,
INSERT
将在记录超出该范围时失败

类似于SQL Server的内容。其他RDBMS语法将略有不同:

CREATE TABLE T (
  Id Int PRIMARY KEY IDENTITY(0, 1)
);

ALTER TABLE T ADD CONSTRAINT Id_Range_Constraint
CHECK (Id BETWEEN 0 AND 9000);

DROP TABLE T;

您需要对DB1进行检查,如@Yuck所说,并在DB2上创建标识,如下所示:

id int not null primary key identity (10000,1),