將數據導入到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型
-
alter table dbo.Sheet1$
-
alter column UserId int null
- 1
- 2
3)把dbo.Sheet1$表中的數據追加到dbo.UserInfo表中
右擊數據庫->任務->導入數據->下一步,
設置數據源為SQLServer Native Client 10.0->輸入服務器名稱->身份驗證->選擇源數據庫->下一步,
設置目標為SQLServer Native Client 10.0->輸入服務器名稱->身份驗證->選擇目標數據庫->下一步,
選擇第一項->下一步,
選擇源數據和目標->下一步(源中列出的是源數據中的表,目標中列出的是目標數據庫中的表),
最后一步,追加成功。
