Можно ли управлять диапазоном идентификаторов в SQL-сервере? - PullRequest
1 голос
/ 17 февраля 2012

Можно ли управлять диапазоном идентификаторов в SQL Server?

Если я установлю seed в БД один на 1 и в БД два на 10000

В этомсценарий, если я синхронизирую обе базы данных, просто добавляем одну базу данных на 10000

Допустим, я хочу это:

  • DB1 -> id start [0 - 9000]
  • DB2 -> id start [10000 - 19000]

РЕШЕНИЕ:

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

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Вы можете создать ограничения в обеих базах данных для диапазонов, указанных в вашем вопросе.Но имейте в виду, что INSERT завершится ошибкой, как только записи выйдут за пределы этого диапазона.

Что-то в этом духе для SQL Server.Другой синтаксис СУБД будет немного отличаться:

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;
0 голосов
/ 17 февраля 2012

вам понадобится проверка DB1, как сказал @Yuck, а в DB2 создайте идентификацию как:

id int not null primary key identity (10000,1),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...