【問題描述】
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部落格:
http://www.cnblogs.com/frostcity/archive/2008/03/07/1095484.html,上面提供了一種解決辦法:将excell另存為“制表分隔符文本檔案”,利用sql server自帶的“導入資料”功能,資料源選擇“文本檔案”。後面是正常的導入方式,問題解決。