Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > 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ГБ). Так что проверить помогает он или нет не смог. |