tblCombinedで一意のインデックスが設定されています。これは、cyDate、dtlNr、seqの順にフィールドに設定されます。SQL Server 2005のユニークなインデックスステージングテーブルから挿入する場所がない場合
私は、tblDailyResultsという別のテーブル(ステージングテーブル)を持っています。それはtblCombinedと全く同じフィールドを持ちますが、インデックスはありません。毎日、私はフィードからこのステージングテーブルにレコードを受け取ります。
私がしたいのは、もしあなたがそうするならば、 "キャッチ"をセットアップすることです。そのため、ユニークなインデックスに違反する重複したレコードはエラーではなく、むしろ挿入されません。それはステージングテーブルに残っています(私はそのような注意を喚起し、そこから管理することができます)。
Insert Into tblCombined
(
cyDate
,dtlNr
,seq
,chCode
,opCode
,nrCode
)
Select
cyDate
,dtlNr
,seq
,chCode
,opCode
,nrCode
From tblDailyResults
Where Not Exists (Select cyDate ,dtlNr ,seq From tblCombined)
をしかし、これは動作していないようです:
これは私が試したものです。私はいくつかのレコードをテストしました。すでに挿入されているフィールドからフィールドを変更し、重複していないレコードはまだ除外しています。私は「存在しない」ということを初めて使うことを認めているので、おそらく私はそれを正しく使用していません。
また、Not Inを試しましたが、複数の列では機能しないようです。
ご迷惑をおかけして申し訳ございません。ありがとう!
は、あなたが特定のキー状況に対処する必要があります'tblCombined'には存在しませんが、' tblDailyRecords'には1回の実行で2回(またはそれ以上)存在しますか?可能であれば –
、可能です。 – SeanFlynn