2012-12-19 81 views
0

我有一堆文本文件的電話號碼分隔回車。我知道這些都是數字。我想將所有這些數字插入到我的SQL數據庫的表中。但問題是文本文件以第一個數字開頭;不是列名。這意味着我每次嘗試插入數據時都不知道列名。使用OPENROWSET插入文本文件到數據庫

爲了澄清這一點,我告訴你,我寫的SQL:

INSERT into dbo.IranCellPhoneNumbers 
SELECT PostalCode = null, mobile as Number,CityId= 20 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Text;Database=D:\Projects\Sepanta\ExcelImporter\ExcelImporter\bin\Debug\k1\, 
'SELECT * FROM etebari.txt') 

我設置POSTALCODE爲null,因爲我想表定義相匹配。並設置CityId硬編碼,因爲我知道我指的是哪個城市。但問題是數字列..它不匹配,因爲文本文件以數字而不是「移動」列名開頭。

如果我想要這個代碼工作,插入之前,我必須打開這些文本文件,並添加「移動」列表的頂部,這是不可取的。

你有什麼建議?

回答

0

您不需要列名稱。只要這樣做:

INSERT into dbo.IranCellPhoneNumbers 
SELECT PostalCode = null, *, CityId= 20 
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 
'Text;Database=D:\Projects\Sepanta\ExcelImporter\ExcelImporter\bin\Debug\k1\;HDR=NO', 
'SELECT * FROM etebari.txt') 
1

嘗試使用類似意見的東西在這裏

http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/cfbe56cc-70b7-462a-b106-0dd9a33304eb

即沿着這些路線的東西:這裏

"Text;Database=D:\Projects\Sepanta\ExcelImporter\ExcelImporter\bin\Debug\k1\;Extended Properties="Excel 12.0;HDR=No" 

有更多的樣本:

http://www.codeproject.com/Articles/37055/Working-with-MS-Excel-xls-xlsx-Using-MDAC-and-Oled

或者運行DOS命令添加自動標題:

COPY HEADERFILE.TXT + YourFile.TXT OUTPUTFILE.TXT 

凡HEADERFILE.TXT包含一個標題和一個回車

,它通常不是好表的設計有特定國家的表,但那是另一故事。

相關問題