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

Откуда: Киев
Сообщений: 12
Всем привет!
Помогите с BULK INSERT.

Я нахожу в папке необходимые файлы(flat files) для загрузки данных вот таким скриптом:
IF OBJECT_ID('tempdb..#DirectoryTree') IS NOT NULL
      DROP TABLE #DirectoryTree;

CREATE TABLE #DirectoryTree (
       id int IDENTITY(1,1)
      ,subdirectory nvarchar(512)
      ,depth int
      ,isfile bit);

INSERT #DirectoryTree (subdirectory,depth,isfile)
EXEC master.sys.xp_dirtree '\\wuakyib332\d$\!_Package_Download\Packages\Files from SAP',0,1;

SELECT * FROM #DirectoryTree
WHERE isfile = 1 and depth =1 AND subdirectory like 'T_D_FD_DRYUA_CSL_00%'
ORDER BY id;
GO



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

К сообщению приложен файл. Размер - 5Kb
8 ноя 16, 15:13    [19870674]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
aleks2
Guest
Andrey89
Как определить столбцы, если нету их шапок в файле и потом сопоставить с результирующей таблицей?

Никак. Низзя "определить" то, чего нету.
8 ноя 16, 15:24    [19870738]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
komrad
Member

Откуда:
Сообщений: 5674
aleks2
Andrey89
Как определить столбцы, если нету их шапок в файле и потом сопоставить с результирующей таблицей?

Никак. Низзя "определить" то, чего нету.

ну разве что к каждому файлу есть format-файл - в нем и список столбцов, и типы данных

однако, это автору не сильно поможет, если он не будет использовать промежуточные таблицы для заливки из файлов
8 ноя 16, 15:29    [19870755]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
Andrey89
Member

Откуда: Киев
Сообщений: 12
В этом флэт файле определены же столбцы через TAB, и если загружать через SSIS пакет то оно видит колонки, по времени загрузки SSIS просто долго грузит.
8 ноя 16, 15:44    [19870850]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
Женя_Куз
Member

Откуда:
Сообщений: 15
А если загружать весь файл а лишнее потом удалить просто, загружать во временную таблицу?
8 ноя 16, 16:30    [19871141]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
komrad
Member

Откуда:
Сообщений: 5674
Andrey89
В этом флэт файле определены же столбцы через TAB, и если загружать через SSIS пакет то оно видит колонки, по времени загрузки SSIS просто долго грузит.

BCP этим заниматься не будет
BCP - это молоток, которым гвозди забивают, простой и эффективный
а думать должна голова

http://henkvandervalk.com/speeding-up-ssis-bulk-inserts-into-sql-server
8 ноя 16, 16:33    [19871153]     Ответить | Цитировать Сообщить модератору
 Re: Определить список столбцов перед выполнением BULK INSERT  [new]
Makar4ik
Member

Откуда: Когда-то были Лужки, а теперь Бордюр-Сити.
Сообщений: 2680
Andrey89,

Было когда-то такое.
Приходилось на лету генерить свой format файл. Из приложения.

Ну а промежуточные таблицы - это тоже решение, но оно по хорошему дороже в два раза.
13 ноя 16, 00:48    [19887249]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить