Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
Добрый день!
Задача:
есть куча файлов xlsm (около 500) одинаковой структуры в определенной папке. Нужно с каждого файла считать данные в таблицу с именем этого файла.


для 1-го файла создал такой запрос

DROP TABLE TEMPTABLE
SELECT * into temptable FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\dwalin\rup\020201.xlsm;HDR=NO;imex=1',
'select * from [развернутый план$]')

Я так понимаю, что надо создать динамический запрос, где вместо 020201.xlsm назначить переменную? в этой же папке, в принципе, можно создать текстовый файл со списком всех файлов в папке, но Как передать данные этой переменной?

Подскажите, пожалуйста, подробно как можно реализовать задачу.
SQL2008R2 Express 64, MSOffice 64.
2 фев 12, 11:10    [12017451]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
еще добавлю: расширение файла не нужно.
2 фев 12, 11:15    [12017474]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
PavlovRoman,

в духе SQL надо лить в одну таблицу, в которой организовать поле [Имя файла] sysname
Плодить таблицы - тупиковый путь.
2 фев 12, 11:15    [12017478]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
to iap:
Ок =) Попробую ваш вариант. Это не сняло мои главный вопрос, про то как считать и передать имена файлов и как добавить столбец(лучше первый), по вашему варианту.
2 фев 12, 11:21    [12017523]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PavlovRoman
Это не сняло мои главный вопрос, про то как считать и передать имена файлов и как добавить столбец(лучше первый), по вашему варианту.

Ну так собрать строку со _всей_ командой
2 фев 12, 11:28    [12017570]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
to glory, извините за назойливость, можете привести пример?
2 фев 12, 11:32    [12017605]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
set @cmd = 'здесь кусок запроса '+@some_variable+' еще кусок запроса'+@other_variable
2 фев 12, 11:37    [12017653]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
то есть:

set @cmd =+@some_variable+' еще кусок запроса'+@other_variable

SELECT * into table FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\dwalin\rup\'+@some_variable+';HDR=NO;imex=1',
'select * from [развернутый план$]')
2 фев 12, 11:43    [12017718]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
Glory
Member

Откуда:
Сообщений: 104751
PavlovRoman
то есть:

Нет
Весь текст команды нужно формировать в переменной
2 фев 12, 11:45    [12017740]     Ответить | Цитировать Сообщить модератору
 Re: динамический запрос, название файла в название таблицы  [new]
PavlovRoman
Member

Откуда:
Сообщений: 27
et @cmd =
SELECT * into table FROM OPENROWSET
('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=D:\dwalin\rup\'+@some_variable+';HDR=NO;imex=1',
'select * from [развернутый план$]')


Извините, забыл в предыдущем ответе стереть Ваш пример
2 фев 12, 11:46    [12017742]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить