頭が真っ白になりました...小さなスクリプトを書こうとしているのに明らかな何かが欠けています:
さまざまな ID を持つ 1 つのテーブルがあります。
TBL_USETHISID
nextid int
参照のある別のテーブルがあります。
TBL_REFS
ref varchar(6)
thisdate datetime
nextid int
TBL_USETHISID から ID を取得し、TBL_REFS を更新して、各行の ID が前のものよりも 1 つ大きくなるようにします。次に、TBL_REFS から max(nextid) を選択し、TBL_USETHISID を最高値で更新します。
これらの ID は複数のテーブルで使用されるため、自動インクリメント フィールドの代わりにこれを使用する必要があります。
明らかに私は試しました:
UPDATE TBL_REFS FROM TBL_USETHISID
SET nextid = TBL_USETHISID.nextid + 1
事前にご協力いただきありがとうございます。
編集 - サンプルデータ:
TBUSETHID:
nextid
7001
TBL_REFS
ref thisdate nextid
0000123 2012-10-02 00:00:00
0000124 2012-10-02 00:00:00
0000125 2012-10-02 00:00:00
更新後:
TBL_REFS
ref thisdate nextid
0000123 2012-10-02 00:00:00 7001
0000124 2012-10-02 00:00:00 7002
0000125 2012-10-02 00:00:00 7003
次に、UPDATE TBL_USETHISID FROM TBL_REFS を nextid = max(a.nextid)+1 に設定して、元のテーブルを更新します。フォーマットが正しいことを願っています。読みやすくするためにコードのように識別しました。