как импортировать файл Excel в sqlserver 2008

#sql #sql-server-2008 #sql-server-2008r2-express

#sql #sql-server-2008 #sql-server-2008r2-express

Вопрос:

Как я могу импортировать файл Excel в новую таблицу в sqlserver2008 express edition с помощью sql-запроса без использования мастера импорта

Спасибо, Пради

Ответ №1:

В базе знаний Microsoft есть статья, в которой излагаются все способы, которыми это возможно.

http://support.microsoft.com/kb/321686

Я думаю, что использование OPENROWSET или OPENDATASOURCE будет самым простым способом без мастера. (см. раздел Распределенные запросы)

 SELECT * INTO XLImport4 FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=C:testxltest.xls', [Customers$])
  

Смотрите документацию OPENROWSET с примерами ниже по странице.

http://msdn.microsoft.com/en-us/library/ms190312.aspx

Комментарии:

1. Правильно, но это часть запроса OPENROWSET посмотрите на ссылку, которую я предоставил.

2. Если у вас возникли проблемы с компьютерами x64, смотрите эту ссылку для x64 Jet engine, microsoft.com/en-us/download/details.aspx?id=13255

Ответ №2:

Используйте ExcelReaderFactory для чтения Excel

Вы можете использовать приведенный ниже код

VB.net Код

 Dim stream As FileStream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read)
Dim excelReader As IExcelDataReader = ExcelReaderFactory.CreateBinaryReader(stream)
Dim result As DataSet = excelReader.AsDataSet()
excelReader.Close()
result.Dispose()
  

Код на C #

 FileStream stream = File.Open("YouExcelFilePath.xls", FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
DataSet result = excelReader.AsDataSet();
excelReader.Close();
result.Dispose();
  

Теперь вы можете выполнять массовый импорт, используя класс Bulkcopy.

или

создайте XML и отправьте в базу данных

или

Используйте OPENROWSET для чтения файла Excel в хранимой процедуре и вставки / обновления данных.

Пожалуйста, следуйте приведенной ниже статье, чтобы реализовать это.

Чтение Excel в хранимой процедуре SQL

Ответ №3:

щелкните правой кнопкой мыши по имени базы данных / перейдите к задаче и затем выберите импортировать данные

в качестве источника выберите файл Excel, который вы создали ранее, и укажите его путь

на следующей странице выберите sql server в качестве места назначения

Комментарии:

1. Это мастер импорта, которого автор вопроса явно хотел избежать.