2015-10-06 100 views
-1

目前正在處理海量數據項目,每秒處理大約1,5-2個事務。SQL Server主鍵約束仍會插入重複項目

我得到的問題是重複正在寫入到SQL Server 2012數據庫表,從一個不同的實時組件到數據庫,即使有主鍵約束。我假設有更多的請求試圖寫入到DB在同一時間。問題是,即使在少數表上有一個主鍵約束,重複表仍然被插入到表中。我認爲觸發器在同一時間被兩個請求調用,並檢查該行是否存在(在完全相同的時間 - 什麼時候沒有)並寫入相同的兩次。

你知道這是否可能,或者如果有任何其他原因爲什麼會發生這種情況?

感謝, 米哈伊

+2

我們無法用您提供的信息回答您的問題。 –

+0

您可能需要升級到爲實時工作而構建的更強大的版本。 –

+1

你的PK約束是什麼樣的。你可以發表表格定義嗎? – JBond

回答

0

你應該實現在SQL Server中的事務。這將正確處理並行插入並行插入請求。

這裏是如何可以在SQL Server中實現事務:

BEGIN TRY 
    BEGIN TRANSACTION 
     -- Your insert statement. 
    COMMIT TRANSACTION 
END TRY 
BEGIN CATCH 
    ROLLBACK TRANSACTION 
END CATCH 

因此,當您第一次插入語句運行,如果SQL Server得到另一個插入請求,然後它會等待,直到它完成第一插入語句並提交該交易並在此之後開始新的交易。

+0

無法實現事務,因爲它們會產生死鎖 –