Excel數據導入Sql Server出現Null

   在Excel中,我們時常會碰到這樣的字段(最常見的就是電話號碼),即有純數字的(如沒有帶區號的電話號碼),又有數字和其它字符混合 (如“區號-電話號碼”)的數據,在導入SQLServer過程中,會發現要麼純數字的數據導過去之後變成了NULL,要麼就是數字和其它字符混合的數據導過去之後變成了NULL。

     網上搜索到了答案:混合數據類型列的強制解析——IMEX=1
使用 IMEX=1 選參之後,只要取樣數據裏是混合數據類型的列,一律強制解析爲 nvarchar/ntext 文本。當然,IMEX=1 對單一數據類型列的解析是不影響的。
以下語句:
 
SELECT * INTO Table08
FROM OpenDataSource
('Microsoft.Jet.OLEDB.4.0','Data Source="E:\1.xls";Extended properties="Excel 5.0;HDR=Yes;IMEX=1;"')...[Sheet1$]

    注:
    1.這條語句是在SQLServer查詢分析器中執行,並且要選擇好數據庫,否則會把要導入的數據往別的數據庫中導了。
    2.Table08是數據導入後在SQLServer中的表名,屬於新建,所以請確認在導入數據前數據庫中沒有該表名,否則會提示已存在同一表名。
    3.Data Source,不要連在一起寫,中間有一空格。
    4.E:\1.xls,爲Excel所在的絕對路徑和數據庫名。
    5.Excel 5.0,根據不同的Excel版本寫5.0或8.0或其它。
    6.IMEX=1,是轉換成文本輸入的意思,非常重要,如果沒有,就跟你直接導入效果一樣。
    7.Sheet1是表名,千萬別看到語句中有$就在表名後加上$,因爲$是語句要加的,別畫蛇添足。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章