#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 с примерами ниже по странице.
Комментарии:
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 в хранимой процедуре и вставки / обновления данных.
Пожалуйста, следуйте приведенной ниже статье, чтобы реализовать это.
Ответ №3:
щелкните правой кнопкой мыши по имени базы данных / перейдите к задаче и затем выберите импортировать данные
в качестве источника выберите файл Excel, который вы создали ранее, и укажите его путь
на следующей странице выберите sql server в качестве места назначения
Комментарии:
1. Это мастер импорта, которого автор вопроса явно хотел избежать.