sqlserver匯入excel失敗,到底怎麼了?程式設計師強哥2020-04-06 21:25:31

很高興能回答您的問題

其實你在下拉選項中選

SQL Server Native Client 11。0,

然後按步驟匯入就可以瞭如圖所示:

sqlserver匯入excel失敗,到底怎麼了?

然後點選下一步:

sqlserver匯入excel失敗,到底怎麼了?

點選下一步:

sqlserver匯入excel失敗,到底怎麼了?

點選下一步:

sqlserver匯入excel失敗,到底怎麼了?

點選完成:

sqlserver匯入excel失敗,到底怎麼了?

希望能幫到您!

sqlserver匯入excel失敗,到底怎麼了?淬火之焰2020-04-06 20:38:23

SQLServer匯入excel

1、選擇要匯入的資料庫——-任務——-匯入資料,如圖:

sqlserver匯入excel失敗,到底怎麼了?

2、選擇excel資料來源——-瀏覽檔案。注意如果excel中首行資料為欄位,應勾選“首行包含列名稱”。

sqlserver匯入excel失敗,到底怎麼了?

3、選擇資料庫——-選擇源表和原檢視:

sqlserver匯入excel失敗,到底怎麼了?

注意,如果不選則目標,則會在資料庫中自動生成同名的表,並把資料匯入進去。

4、如不需儲存SSIS包,直接點選完成即可。

不出錯誤到此以匯入完畢,但是實際上並非如此,錯誤示例:

操作已停止。。。

- 正在初始化資料流任務 (成功)

- 正在初始化連線 (成功)

- 正在設定 SQL 命令 (成功)

- 正在設定源連線 (成功)

- 正在設定目標連線 (成功)

- 正在驗證 (成功)

- 準備執行 (成功)

- 執行之前 (成功)

- 正在執行 (成功)

- 正在複製到 [dbo]。[t_Student] (錯誤)

訊息

錯誤 0xc0202009: 資料流任務 1: SSIS 錯誤程式碼 DTS_E_OLEDBERROR。出現 OLE DB 錯誤。錯誤程式碼: 0x80004005。

已獲得 OLE DB 記錄。源:“Microsoft SQL Server Native Client 10。0” Hresult: 0x80004005 說明:“未指定的錯誤”。

(SQL Server 匯入和匯出嚮導)

錯誤 0xc020901c: 資料流任務 1: 輸入“Destination Input”(60) 上的 輸入列“studentId”(127) 出錯。返回的列狀態是:“該值違反了該列的完整性約束。”。

(SQL Server 匯入和匯出嚮導)

錯誤 0xc0209029: 資料流任務 1: SSIS 錯誤程式碼 DTS_E_INDUCEDTRANSFORMFAILUREONERROR。“輸入“Destination Input”(60)”失敗,錯誤程式碼為 0xC020907D,而且針對“輸入“Destination Input”(60)”的錯誤行處理設定指定一旦出錯就失敗。在指定元件的指定物件上出錯。可能在此之前已經發出錯誤訊息,提供了有關失敗的詳細資訊。

(SQL Server 匯入和匯出嚮導)

錯誤 0xc0047022: 資料流任務 1: SSIS 錯誤程式碼 DTS_E_PROCESSINPUTFAILED。處理輸入“Destination Input”(60)時,元件“目標 - t_Student”(47)的 ProcessInput 方法失敗,錯誤程式碼為 0xC0209029。標識的這個元件從 ProcessInput 方法返回了一個錯誤。雖然該錯誤是此元件特有的,但卻是致命的,將導致資料流任務停止執行。可能在此之前已經發出錯誤訊息,提供了有關失敗的詳細資訊。

(SQL Server 匯入和匯出嚮導)

- 執行之後 (成功)

訊息

資訊 0x402090df: 資料流任務 1: “元件“目標 - t_Student”(47)”中的資料插入操作的最終提交已開始。

(SQL Server 匯入和匯出嚮導)

資訊 0x402090e0: 資料流任務 1: “元件“目標 - t_Student”(47)”中的資料插入操作的最終提交已結束。

(SQL Server 匯入和匯出嚮導)

資訊 0x4004300b: 資料流任務 1: “元件“目標 - t_Student”(47)”已寫入 0 行。

(SQL Server 匯入和匯出嚮導)

就個人經驗而言,一般提示最有用能直觀展示非系統問題的是第二個錯誤提示,如上述:“錯誤 0xc020901c: 資料流任務 1: 輸入“Destination Input”(60) 上的 輸入列“studentId”(127) 出錯。返回的列狀態是:“該值違反了該列的完整性約束。”

常見問題:

1、外來鍵約束,例如:已獲得 OLE DB 記錄。源:“Microsoft SQL Server Native Client 10。0” Hresult: 0x80004005 說明:“INSERT 語句與 FOREIGN KEY 約束“FK_t_Student_t_Classes”衝突。該衝突發生於資料庫“CollegeSystemVBTest”,表“dbo。t_Classes”, column ‘classId’。”一般外來鍵約束禁止更新或插入會觸發此問題,解決方法,詳見我的部落格《簡簡單單說外來鍵和級聯》。

2、列的完整性約束,例如:“錯誤 0xc020901c: 資料流任務 1: 輸入“Destination Input”(60) 上的 輸入列“studentId”(127) 出錯。返回的列狀態是:“該值違反了該列的完整性約束。”一般主鍵約束會觸發此問題,例如匯入的excel中主鍵重複。想想當時因為是由2000多行學生資訊,轉專業的學生、源資料錯誤都會產生重複行,當時想的辦法是先匯入Access,查詢重複列然後再刪除,雖能解決,但是效率太低,更好的解決方法,excel自帶去除重複列功能,進入excel——-資料——-刪除重複項。

3、對映列多餘,SQLserver雖然可以智慧識別對映列,但是成功率並非100%,所以可以在匯入excel第三步驟中編輯對映列或是選擇生成對映列。

4、資料長度,這個問題也十分常見,excel單元格預設字元長度最大值為255,超過255即出錯。