2013-08-07 2 views
3

Я пытаюсь сделать массовую вставку (SQL Server 2008) в таблицу, но вставка должна игнорировать любой дубликат, уже существующий в таблице.SQL Server: bulk Вставить и проигнорировать дубликаты

Упрощенная таблица будет выглядеть с существующими значениями.

TBL_STOCK 

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

Теперь я хочу сделать объемную вставку, которая выглядит как

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

Это работает, но будет вызывать повторяющиеся записи

Как я могу идти о игнорировании повторяющихся записей в столбце Stock?

ответ

0

«игнорируя дублирующие записи», вы имеете в виду избегать их в 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