2012-02-17 9 views
1

SQL ServerでID範囲を管理することはできますか?SQLサーバーでID範囲を管理できますか?

私は両方 DB年代を同期場合、私はこのシナリオで

10000の1にし、DB 2でDB 1にシードを設定した場合、DBの1がちょうどのは、私がしたいとしましょう10000

に追加これ:

  • DB1 - > idが起動[0 - 9000]
  • DB2 - [ - 19000 10000]
  • > IDが開始します

SOLUTION:

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

答えて

2

あなたの質問に指定された範囲のために、両方のデータベースで制約を作成することができます。しかし、レコードがその範囲外になるとすぐに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; 
0

をあなたは@Yuckが言ったようにDB1のチェックを必要とDB2上、としてのアイデンティティを作成します。

id int not null primary key identity (10000,1), 
関連する問題