2011-02-18 25 views
0

我正在使用openrowset()函數將Excel文件導入臨時SQLServer 2005表。是否將導入帶有空行的Excel文件導入到SQLServer 2005表中的問題

它在大多數情況下工作正常。但是,如果Excel文件的前10行爲空,則剩餘的非空行將導入爲空。

以前有人遇到過這個問題嗎?關於如何克服它的任何想法?

+9

請在鍵盤上找到** Caps Lock **,然後按下。就像我剛纔那樣。 – shamittomar 2011-02-18 07:22:51

回答

0

這是由OLEDB驅動程序如何確定Excel中的數據類型引起的。默認情況下,它掃描前8行以確定字段的數據類型。

  • 您以前可以在連接字符串中設置「MaxScanRows」來配置要在工作表中掃描的行。遺憾的是,這個設置自從Jet 4.0以來不再適用。現在強制它的唯一方法是設置註冊表項[HKLM \ Software \ Microsoft \ Jet \ 4.0 \ Engines \ Excel \ TypeGuessRows]。可能的值是1-16或0來掃描整個文件。
  • 還有IMEX設置(這意味着ImportMixedTypes)當您將其設置爲1時,它表示「ImportMixedTypes = Text」。這解決了很多問題,因爲驅動程序根據找到的某種類型的值確定數據類型。