將Excel數據導入到SqlServer及導入時數據類型轉換失敗解決方案


將數據導入到SqlServer是很常用的一個功能,而Excel數據源又是數據導入功能的常用數據源,在使用時遇到一些問題,記錄下來防止大家走彎路。

UserInfo表結構以及Excel數據截圖

UserInfo表結構:
表結構
Excel數據:
這里寫圖片描述

SqlServer導入數據

1、右擊數據庫->任務->導入數據->下一步
這里寫圖片描述
2、設置數據源為Microsoft Excel->選擇文件路徑->下一步
這里寫圖片描述
3、身份驗證->選擇目標數據庫->下一步
這里寫圖片描述
4、選擇第一項->下一步
這里寫圖片描述
5、選擇源數據和目標->下一步
這里寫圖片描述
6、導入結果
如果源數據與目標表所需數據的格式相匹配,那即可成功導入。
但往往會有數據不匹配的情況,例如:
這里寫圖片描述

數據轉換失敗解決方案

1、Double無法轉換為nvarchar
UserInfo表中的UserName列是nvarchar(20)類型,而Excel表中UserName列的數據是111、222、333,因此被識別為double類型
解決方案:
選中UserName列的數據->數據->分列->下一步->下一步->選擇“文本”->完成,再導入時UserName列格式就能匹配上了。
這里寫圖片描述
這里寫圖片描述

2、Double無法轉換為int
UserInfo表中的UserId列是int類型,而Excel表中UserId列的數據2016010、2016011、2016012被識別為double類型
解決方案:
1)導入數據在選擇源表和源視圖時,不要選擇表,那會在數據庫中創建一個跟源數據同名的表。
這里寫圖片描述
這里寫圖片描述
2)把dbo.Sheet1$表中UserId列的數據類型修改為int型

  1.  
    alter table dbo.Sheet1$
  2.  
    alter column UserId int null
  • 1
  • 2

3)把dbo.Sheet1$表中的數據追加到dbo.UserInfo表中
右擊數據庫->任務->導入數據->下一步,
設置數據源為SQLServer Native Client 10.0->輸入服務器名稱->身份驗證->選擇源數據庫->下一步,
設置目標為SQLServer Native Client 10.0->輸入服務器名稱->身份驗證->選擇目標數據庫->下一步,
選擇第一項->下一步,
選擇源數據和目標->下一步(源中列出的是源數據中的表,目標中列出的是目標數據庫中的表),
這里寫圖片描述
最后一步,追加成功。
這里寫圖片描述


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM