SQL Server:批量插入并忽略重复项

时间:2013-08-07 06:59:56

标签: insert duplicates ignore bulk

我正在尝试将批量插入(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列中的重复条目?

1 个答案:

答案 0 :(得分: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