Импорт xls. Null в первых 8 строках дает null во всех строках.

Alexs_001
Дата: 22.02.2010 17:03:20
Надо проимпортировать больше 3000 xls файлов с одинаковой структурой.
Нашел как это сделать:
1. получить список имен файлов помощью xp_dirtree 'каталог с файлами', 1, 1
2. с именем каждого файла выполнить INSERT INTO FROM OPENROWSET
Спасибо форумчанам! Отличный сайт!

Но осталась такая проблема.
Если в каком-то поле таблицы, в первых 8 строках содержится null, то после импорта, null будет во всех записях этого поля. Похожий файл приаттачен.

Нижеприведенный код над приаттаченным файлом:
SELECT *
FROM OPENROWSET (
'Microsoft.Jet.OLEDB.4.0', 
'EXCEL 8.0; database=C:\delme.XLS', 
'SELECT first_price FROM [results]'
)
выдаст 175 записей с пустыми значениями.
Если в 9й записи написать 0, то возвращаются все записи праильно.

Видать, Microsoft.Jet наличие данных в поле определяет по первым 8-ми записям. Как праильно импортировать данные из xls-файлов?
Использую Microsoft SQL Server Express Edition with Advanced Services v.10.0.2531.0. (т.е. без Integration services)
Glory
Дата: 22.02.2010 17:07:18
SELECT *
FROM OPENROWSET (
'Microsoft.Jet.OLEDB.4.0', 
'EXCEL 8.0; database=C:\delme.XLS;IMEX=0', 
'SELECT first_price FROM [results]'
)
Попробуйте так
Alexs_001
Дата: 22.02.2010 17:20:42
Glory, спасибо!
Правда, IMEX=0 не помогло, а вот IMEX=1 помогло!!!! Догадался :) хоть пока понятия не имею, что оно такое.
tpg
Дата: 24.02.2010 06:45:37
Alexs_001
...хоть пока понятия не имею, что оно такое.
http://www.sql.ru/forum/actualthread.aspx?tid=322266&pg=1&hl=imex�
Alexs_001
Дата: 26.02.2010 18:13:10
В завершение темы инфа, не относящаяся к теме импорта непосредственно.
IMEX=1 видит всё, но числовые значения иногда попадаются в экспоненциальном формате 1.2345e+006, причем иногда с точкой, иногда с запятой (это в моем случае, может, 1 файл на 3000, не известно как их создавали), поэтому числа не лезут в числовые поля, даже если использовать CONVERT.
Чтобы наверняка не было ошибки преобразования типа, помогло:

SELECT
CONVERT(float, REPLACE ( [число_в_неподдерживаемом_формате] , ',' , '.' ))
FROM OPENROWSET

ну и для целых чисел, соответственно

CONVERT(int, CONVERT(float, REPLACE ( [число_в_неподдерживаемом_формате] , ',' , '.' )))

В общем, задача решена. Спасибо еще раз за IMEX !