2008-12-12 134 views
0

我已閱讀所有有關爲數字前綴',並在連接字符串中設置IMEX = 1的帖子;沒有什麼似乎爲我做的伎倆。SQL導入嚮導丟棄前導零

這裏是設置:Excel列有混合數據 - 99%的數字(一些從0開始)1%的文本。

PROGRAMATICALLY導入到SQL Server 2005表/列類型 - varchar(255)。

導入在本地很好地工作,但是一旦我將代碼移到生產(GoDaddy)中,它將刪除列中的前導0。

有什麼建議嗎?

p.s.我知道註冊表變更解決方案,事實上 - 在我的開發箱中,該值設置爲0,但答案讓我意識到該值未在生產服務器上設置:)

回答

2

的ISAM驅動程序只樣本第8行,但您可以通過更改註冊表改變這種行爲:

http://sqlserversd.wordpress.com/2008/09/14/ssis-excel-values-import-as-nulls/

但是,是的,使用Excel的機器到機器數據傳輸是一場噩夢...有沒有其他方式可以發送數據?

+0

即使我在註冊表中改變了這個值,這個答案讓我意識到生產服務器上的值沒有改變:) – 2008-12-12 22:01:19

2

是的。 Excel驅動程序僅採樣前8行以確定數據類型。 這意味着它假設列是數字是「bob」不出現在第1到第8行。

目標表列數據類型是不相關的。

這個問題一直存在的long time,我第一次在2003年看到它。

BOL notes on excel import

0

我們通常將文件保存爲.csv文件或.txt文件,然後不發生問題。

0

這是一個快速和棘手的方法。遵循這些步驟,但首先將實際Excel表格中的所有數據/列和行復制到另一個Excel表格中,以保證安全,以便與實際數據進行比較。

步驟:

  1. 所有的值複製列,並將它們粘貼到記事本。
  2. 現在將列類型更改爲Excel工作表中的文本(它將修剪前後的零),不用擔心這一點。
  3. 轉到記事本並複製剛剛粘貼的所有值。
  4. 轉到您的Excel表格並將值粘貼在同一列中。

如果您有多個具有0個值的列,請重複相同的操作。 現在您的Excel文檔已準備好導入零值:)。

快樂的日子。