0
我有一個行數在8000到10000之間的excel文件。我將它轉換爲c#中的xml並將它傳遞給存儲過程以將其插入到表中。在sql server中插入批量數據,同時忽略/捕獲重複行
插入數據時,如果有一個條目已經存在於數據庫中我想忽略/捕獲它,而不插入其他行而不打破插入。
我認爲的一種解決方案是在表上創建一個插入觸發器來檢查該行是否已經存在於表中,但這種方法對於10,000行是非常昂貴的。
還有什麼辦法呢?下面是手短碼
SELECT @sql = N'
INSERT INTO Expenses ('+ STUFF(@col,1,1,'') +')
SELECT ' + STUFF(@col,1,1,'') + '
FROM #TEMPTABLE t
PIVOT (
MAX([Value]) FOR AttributeName IN (' + STUFF(@col,1,1,'')+')
) as pvt'
EXEC (@sql)
我很好,沒有從臨時表中刪除重複的數據。我想要的是將重複數據分別捕獲到某處,以將其傳回給用戶。您的解決方案可以幫助我插入非重複的數據,但我如何存儲重複的行? – user728630
@ user728630。 。 。你的問題是「我想忽略」,這是這樣做的。如果你想做其他事情,那麼編寫一個查詢來查找重複的行並返回它們。 。 。作爲一個單獨的步驟。 –