3

テーブルに一括挿入 (SQL Server 2008) を実行しようとしていますが、挿入ではテーブル内の重複を無視する必要があります。

単純化されたテーブルは、既存の値で次のようになります。

TBL_STOCK

id | Stock
---------------
1  | S1
2  | S2
3  | S3

今、次のような一括挿入を行いたい

INSERT INTO TBL_STOCK (Id, Stock)
VALUES 
(3, S3),
(4, S4),
(5, S5)

これは機能しますが、エントリが重複します

Stock列の重複エントリを無視するにはどうすればよいですか?

4

1 に答える 1

1

「重複エントリを無視する」とは、TBL_STOCK でそれらを回避することを意味しますよね?

少し遅れるかもしれませんが、次のことを試してみましたか?

INSERT INTO #TempStock (Id, Stock) -- temporary table
VALUES 
(3, S3),
(4, S4),
(5, S5)

INSERT INTO TBL_STOCK
SELECT * FROM #TempStock 
WHERE NOT EXISTS (SELECT Stock FROM #TempStock WHERE #TempStock.Stock = TBL_STOCK.Stock)

DROP TABLE #TempStock
于 2014-01-14T18:58:26.883 に答える