2017-04-21 48 views
0

所以,我的問題是,我正在試圖製作一些能夠輕鬆地將Excel數據表加載到SQL數據庫中的東西,但在此之前,我必須嘗試使身份規範與我合作。Identity Specification使一切都變得麻煩

當我將標識規範爲true的主鍵分配時,問題就開始了,因爲隨後出現錯誤消息「IDENTITY_INSERT設置爲OFF時,無法爲表'Priskod'中的標識列插入顯式值。

但是,當我設置身份規範是假的,然後我得到錯誤消息「違反PRIMARY KEY約束'PK_dbo.Priskod'。不能在對象'dbo.Priskod'中插入重複鍵。重複鍵值是( 0)。聲明已被終止。「

有沒有人有任何關於如何解決這個問題的建議?

+1

你可以提供關於如何將數據推送到表的更多細節? – nimdil

+0

我已經刪除了一些與問題無關的信息,您的緊急情況不應該是提問的關鍵,它只會讓人們失望。 – Tanner

+0

我敢打賭,將IDENTITY置於關鍵字段ON,並且導入Excel工作表時不映射關鍵字段 – Roeland

回答

0

聽起來就像您有一個Excel電子表格,用於保存要導入到SQL Server表中的數據。

問題是,您正試圖直接將其加載到源表中並啓用此功能,因此您正在禁用IDENTITY列。這應該真的響起警鐘,因爲當SQL阻止你插入重複密鑰時它是正確的。

有2個選項的位置:

  1. 在Excel中的鍵值是真正的標識值是唯一的,所以你只能INSERT記錄他們沒有目標表存在。這可能是通過先導入到臨時/臨時表並插入ID不存在的位置來實現的。您可能還想在ID確實存在的行上執行UPDATE

  2. Excel中的鍵值不是真正的標識值。

無論哪種方式,我想你應該添加一個新的列到目標表所示:ExternalId,它可根據需要或反對,以防止重複檢查重複。使用這兩種方法,您應該保持原樣插入IDENTITY插件。

0

讓系統現在工作。 我不得不直接將信息輸入到數據庫中,而不是實際嘗試將信息上載到數據庫本身。所以感謝大家的幫助和支持。你們都很棒。