と呼ばれるテーブルがあり、SharedNumber
フィールドは1つだけです。整数と呼ばれ、LastNumber
エントリは1つだけです。
このLastNumber
エントリを共通の参照ポイントとして使用する、約40または50の奇数の完全に別個のAccessデータベースがあります。これは基本的に、それ自体では生成できないシステムの一意の主キーを手動で生成するために使用されます。それは醜くて厄介で、私はそれらを1つずつ徐々に切り離していく過程にありますが、その間に、この同じエントリを参照するプロセスをSQLServerで構築する必要があります。
私は以下を扱っています:
1.1。
共有番号テーブル:
create table SharedNumber
(
[LastNumber] int not null
) ON [PRIMARY]
Insert into SharedNumber
values
(234) --This is the most recent shared number
2.2。
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
更新します。LastNumber
私が望む最終的な結果は次のとおりです。
ContractID Name
101 ABC
102 DEF
235 GHI
236 JKL
237 MNO
LastNumber
237
誰かがこれを行うための良い方法について何かアイデアがありますか?