私は既存のテーブル(tbl01)にレコードが存在しない一時テーブル(temp)から挿入する方法を理解しようとしていますテーブル(tbl01)。私はそれが理にかなったことを願う私は基本的に、テーブルの最後の更新以降に発生したレコードでテーブルを更新しようとしています。ここに私のコードは、これまでのところです:レコードが存在しない別のテーブルからテーブルに挿入
insert into tbl01
(sale_store, sale_dt, sale_register, sale_trans)
select distinct
sale_store, sale_dt, sale_register, sale_trans
from temp
where NOT EXISTS (select * from tbl01)
私がいる問題は、それが実行されるということですが、テーブルに任意の新しいレコードを入れていません - 新しいレコードの多くがあるべきです。私はそれが何か小さいと愚かな私は行方不明だと確信しています。私はこの記事を私のガイドとして使いました:How to avoid duplicates in INSERT INTO SELECT query in SQL Server?
ありがとうございます!
「tbl01」の別のレコードをどのように決定しますか?それは 'sales_store'か複数のフィールドですか? 'NOT EXISTS(SELECT ...)'はSELECT文を実行し、レコードがあれば 'NOT EXISTS'が失敗するので、相関サブクエリが必要になるか、 ' NOT IN(SELECT FROM ...)を使う必要があります。 ) ' –
JNevill
これらの4つのフィールドが一緒になって「別個の」レコードを作成します。したがって、これらのフィールドの4つすべてを次のようなものとして含める必要があります。 ここでは存在しません(select sale_store、sale_dt、sale_register、sale_trans from tbl01 – DJDJ23
ターゲットがSETテーブルとして作成され、 WHEREがないINSERT/SELECT、重複した行は静かにSETテーブルによって破棄されます – dnoeth