手順に一時的なテーブルがあります。次のようなselectステートメントからデータを挿入しようとしました。
INSERT INTO #temptable
SELECT fee, expense, total FROM invoice
UNION
SELECT vat, holdingtax, total FROM uplifts
...しかし、私の誘惑では、最初のselectステートメントのみがテーブルに入力され、次のselectステートメントはデータを挿入しません。
手順に一時的なテーブルがあります。次のようなselectステートメントからデータを挿入しようとしました。
INSERT INTO #temptable
SELECT fee, expense, total FROM invoice
UNION
SELECT vat, holdingtax, total FROM uplifts
...しかし、私の誘惑では、最初のselectステートメントのみがテーブルに入力され、次のselectステートメントはデータを挿入しません。
構文は問題ないようです、
2番目のテーブルに重複がある可能性があります。
UnionではなくUnionAllを使用してこれをテストできます。
挿入せずにクエリを実行して、期待する結果が返されるかどうかを確認します。
UNIONが重複データを削除していると思います。ユニオンALLでテストを行いました。
insert into #temptable
select top 1 name from sys.tables
union all
select top 1 name from sys.tables a
そして私は得た(2 row(s) affected)
UNIONをUNIONALLに置き換えてみてください