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

Откуда: Санкт-Петербург
Сообщений: 27
Задача заливать в таблицу(куча) новыми данными из разных файлов, и отслеживать когда и каким файлом была залита строка, т.е. нужно присваивать каждой строке название файла откуда заливалось.

Затруднения возникли только вот с чем:

1. Как присвоить строке название файла? Если файлы имеют динамическую маску по дате. Может кто посоветует чем воспользоваться?


Название - "distributor346_03_2014.xls" т.е. маска получается "distributor346_##_####.xls"
13 май 14, 17:18    [16011403]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ivaryus
Как присвоить строке название файла?

Строке ничего присвоить нельзя
Можно занести значение в поле записи таблицы
Делается это командой INSERT. Синтаксис и примеры есть в хелпе
13 май 14, 17:28    [16011462]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Ivaryus
Задача заливать в таблицу(куча) новыми данными из разных файлов, и отслеживать когда и каким файлом была залита строка, т.е. нужно присваивать каждой строке название файла откуда заливалось.


а каким образом происходит импорт данных?
13 май 14, 17:35    [16011511]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Ivaryus
Member

Откуда: Санкт-Петербург
Сообщений: 27
Наверное непонятно написал. Попробую так:

Есть папка с файлами. Из файлов заливаются данные, как записать в таблицу названия этих файлов при импорте данных?

Заливаю с помощью Bulk Insert
13 май 14, 17:53    [16011635]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Ivaryus
Заливаю с помощью Bulk Insert

И как же вы заливаете, не зная имени файла ?
А если знаете, то что мешает занести его в таблицу ?
13 май 14, 17:55    [16011650]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Ivaryus
Наверное непонятно написал. Попробую так:

Есть папка с файлами. Из файлов заливаются данные, как записать в таблицу названия этих файлов при импорте данных?

Заливаю с помощью Bulk Insert


для выполнения bulk insert вы используете имя конкретного файла, значит сразу после bulk insert нужно сделать update записей с незаполненных именем файла, используя это значение
13 май 14, 17:56    [16011661]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Ivaryus
Member

Откуда: Санкт-Петербург
Сообщений: 27
Количество файлов много ;)
вписывать ручками после каждой вставки - мазахизм. (365 дней 12 раз менять код)

Есть ли инструмент в sql на похожий на - " dir D:\мой католог\ " в cmd? Только что бы показывал все в таблице.
13 май 14, 18:09    [16011732]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
Ivaryus
Количество файлов много ;)
вписывать ручками после каждой вставки - мазахизм. (365 дней 12 раз менять код)

Есть ли инструмент в sql на похожий на - " dir D:\мой католог\ " в cmd? Только что бы показывал все в таблице.


еще раз - в качестве аргумента-источника для bulk insert вы что передаете?
13 май 14, 18:22    [16011796]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
o-o
Guest
проблема ТС в переводе на русский:
подскажите, как залить в таблицу кучу однотипных файлов
(и чтоб имя файла на каждой итерации ложилось в одно из полей таблицы).

т.е. он еще и сам не придумал, как заливать,
потому и не знает, как имя файла заносить :)
13 май 14, 18:31    [16011831]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Ivaryus
Member

Откуда: Санкт-Петербург
Сообщений: 27
Да, с объяснением туго, но кто-то меня понял.

Задача ведь такая - что бы поток лился как река. Автоматизация :)

Посоветовали воспользоваться xp_dirtree.
13 май 14, 18:42    [16011888]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
o-o
Guest
да, или получить куда-то (в табличку) список файлов через xp_dirtree,
и потом курсором по ней пройти,
или есть готовый Foreach Looop Container в SSIS,
там тоже балком льется.
правда, у меня получалось только от .csv задарма имя файла класть в таблицу,
т.е. для Flat File предусмотрен FileName,
для других источников не подскажу
13 май 14, 18:50    [16011918]     Ответить | Цитировать Сообщить модератору
 Re: Как записать\вписать название файлов при импорте данных в таблицу?  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
или вообще зайти с другой стороны и написать скрипт (батник), который будет получать список файлов средствами ОС и затем лить через bcp или sqlcmd+bulk insert
13 май 14, 18:58    [16011955]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить