Excell導SQL Server 某列包含混合數據 導致非數字串為null
【問題描述】
Excell文件導入SQL Server時,某列數據中即包含純數字組合的串,也包含帶有個別字母的串。導入數據庫時,該列的所有非純數字串為null。例如:
Excell文件:
Sid Name Code
1 Jerry 1001
2 Merry CN01
3 Mark 1002
導入數據庫表後:
1 Jerry 1001
2 Merry null
3 Mark 1002
【問題原因】
微軟官方的說法: SQL在導入Excel混合數據列的時候,由於數據類型不唯一,導致SQL無法確定數據類型 。SQL的應對之道就是統計該數據列的前8行數據中出現最多的類型,並以此類型做為默認類型。
如此,該列被自動是被為float類型。即使在導入數據時,Mapping時,將該列的數據類型更改為varchar同樣存在問題。
我嚐試使用腳本導入Excell,並在導入時,將Code列做類型轉換,問題仍然存在。
【解決辦法】
找到一片CSDN博客:
https://www.cnblogs.com/frostcity/archive/2008/03/07/1095484.html,上麵提供了一種解決辦法:將Excell另存為“製表分隔符文本文件”,利用SQL Server自帶的“導入數據”功能,數據源選擇“文本文件”。後麵是正常的導入方式,問題解決。
最後更新:2017-04-02 00:06:45