2013-08-07 187 views
3

我試圖做一個批量插入(SQL Server 2008)到表中,但插入必須忽略已經在表中的任何重複。SQL Server:批量插入並忽略重複

簡化的表格將與現有值一樣。

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