私はSharedNumber
というテーブルを持っています。フィールドは1つしかありません。LastNumber
という1つのフィールドしかありません。相互に共有されたベースから一連のインクリメントされた数字を生成する
このLastNumber
エントリを共通の参照ポイントとして使用する、完全に独立した約40または50のアクセスデータベースがあります。基本的に、それ自身で生成することができないシステムのために一意の主キーを手動で生成するために使用されています。それは醜くて面倒です。私は徐々にそれらを一つずつ離していきますが、その間にSQL Serverでこの同じエントリを参照するプロセスを構築する必要があります。
Iは、以下を扱う午前:
共有番号テーブル:
create table SharedNumber
(
[LastNumber] int not null
) ON [PRIMARY]
Insert into SharedNumber
values
(234) --This is the most recent shared number
入力データテーブル(InputTable
)新しいエントリを継続的に受け取る予定であり、新しいContractID
フィールド値は、LastNumber
をインクリメントして手動で生成する必要があります。簡単に言うと、このテーブルがName
に一意に定義されているとします。
create table InputTable
(
[ContractID] int NULL,
[Name] varchar(50) not null
) ON [PRIMARY]
Insert into InputTable
values
(101,'ABC'),
(102,'DEF'),
(NULL,'GHI'),
(NULL,'JKL'),
(NULL,'MNO')
エントリー「GHI」、「JKL」と「MNOは」ContractID
値を必要とするので、私は漸進LastNumber
に基づいて、彼らのために新しい番号を作成し、生成された最後の1にLastNumber
を更新したいです。私が欲しい最終的な結果は次のとおりです。
ContractID Name
101 ABC
102 DEF
235 GHI
236 JKL
237 MNO
LastNumber
237
誰もがこれを行うには良い方法についてのアイデアはありますか?