Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS SQL Server > Создать временную таблицу по данным из листа Excel


Автор: KOHCEPBATOP 8.12.2010, 10:55
Используемое ПО:
Microsoft Windows 7 Корпоративная x64 [Version 6.1.7600 Сборка 7600]
Microsoft SQL Server 2005 - 9.00.4053.00 (X64)
Microsoft Office Excel 2003 (11.8328.8329) SP3


В процессе работы макроса необходимо данные с листа перенести во временную таблицу. Как реализовать это оптимальным способом.

Вариант "insert into #t select 11, 12 union select 21, 22 union select 31, 32 ..." тормозит безбожно.

Варианты
"SELECT * INTO #t FROM OPENROWSET('MSDASQL','Driver={Driver Microsoft Excel(*.xls)};DBQ=[D:\test.xls]','SELECT * FROM [TestSheet$]')"
и
"SELECT * INTO #t FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0','Data Source=D:\test.xls;Extended Properties=Excel 8.0')...[TestSheet$]"
возвращают ошибку
"The OLE DB provider "MSDASQL" has not been registered."
и
"The OLE DB provider "Microsoft.Jet.OLEDB.4.0" has not been registered."
соответственно.

Пробовал установить 64-Bit OLEDB Provider for ODBC (64-bit MSDASQL for Windows 2003). Установщик ругается: "Недостаточно памяти для обработки команды" (на компе 4ГБ). Так что проверить помогает он или нет не смог.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)