2014-07-21 2 views
0

Я пытаюсь массовой загрузки из файла Excel с помощью следующего запроса:Массовая загрузка из Excel в SQL Server 2008

BULK INSERT TempRevenueForecast 
    FROM 'E:\RevenueTracker\Demo\UserTemplate.xls' 
    WITH (FORMATFILE = 'E:\RevenueTracker\Demo\TRF.FMT'); 
GO 

Но, я получаю эту ошибку:

Bulk load data conversion error (truncation) for row 1, column 2

Как я могу это решить?

+0

BULK INSERT не будет загружать файл Excel. Вам либо нужно сначала сохранить текстовый файл, либо использовать OPENROWSET, как и эти примеры (первые, которые появились в Google при поиске) http://social.msdn.microsoft.com/Forums/sqlserver/en-US/ 5942b056-7985-4cc0-9628-6dcbc6f6bda1/балк-вставка-для-загрузки-XLS-Excel-файлы? форум = transactsql –

ответ

0

Если вы открываете таблицу TempRevenueForecast в режиме редактирования (правая кнопка-таблица - редактировать 200 строк) в SSMS, вы можете просто скопировать-вставить данные Excel.

Это очень удобная функция SSMS.

В противном случае используйте OpenRowset:

INSERT INTO [TempRevenueForecast ] ([Column1], [Column2], [Column3], [Column4]) 

SELECT A.[Column1], A.[Column2], A.[Column3], A.[Column4] 
FROM OPENROWSET 
('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;Database=E:\RevenueTracker\Demo\UserTemplate.xls;HDR=YES', 'select * from [Sheet1$]') AS A; 

За то, что на работу, Microsoft Access Database Engine (ACE) компоненты должны быть установлены.
http://www.microsoft.com/en-us/download/details.aspx?id=23734
или
http://www.microsoft.com/en-us/download/details.aspx?id=13255

Смежные вопросы