天天看點

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部落格:

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