2012-12-19 63 views
0

我有一個腳本可以創建一個表格以及一列用於跟蹤負責導入的文件名。在Excel導入期間添加一列到SQL Server表中

select *, 'file1.xls' as 'Filename' 
into dbo.SQLServerTable 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=D:\testing.xls;HDR=YES','SELECT * FROM [Sheet1$]') 

然後我需要執行具有不同的文件名額外的進口。我不相信這句話在語法上是正確的,它阻止了導入。

INSERT INTO dbo.SQLServerTable 
Select *, 'File2.xlsx' as 'FileName' 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel  12.0;Database=D:\Convert\Converted\File2.xlsx;HDR=YES', 'SELECT * FROM [Worksheet$]') 
+0

您是否收到錯誤訊息?如果是這樣,哪一個? –

+0

我收到的錯誤是「字符串或二進制數據將被截斷」 –

+0

您是否預先知道Excel文件中包含哪些列? –

回答

1

我遇到這個問題,這是因爲默認表的值,爲字符串值,這將是例如一個varchar(50),其中,i需要一個varchar(120)

我的解決辦法有至將excel放入一個csv文件(標準保存在Excel中),然後使用sql導入/導出UI將文件導入到表中。在此過程中,您可以看到所有的默認值,然後通過高級選項卡將這些值更改爲您的偏好。