Я хотел бы использовать SSIS для создания экспорта плоских файлов таблиц базы данных, а затем импортировать их в различные дистрибутивы SQL Express. Как вы можете догадаться, SSIS недоступна в версии Express. Когда я делаю массовую вставку, она выдает ошибку:
Msg 4866, Level 16, State 8, Line 1
The bulk load failed. The column is too long in the data file for row 1, column 5. Verify that the field terminator and row terminator are specified correctly.
Сгенерированный файл ascii (1252) с char (09) (табуляция) между полями и char (0d) char (0a), заканчивающимся строкой (я думаю, это \ r \ n).
Это файл формата (4-ая колонка - ширина столбца):
9.0
5
1 SQLCHAR 0 12 "\t" 1 Record_ID ""
2 SQLCHAR 0 498 "\t" 2 Filename SQL Latin1 General CP1 CI AS
3 SQLCHAR 0 498 "\t" 3 Path SQL Latin1 General CP1 CI AS
4 SQLCHAR 0 12 "\t" 4 Width ""
5 SQLCHAR 0 12 "\r\n" 5 Height ""
Пример данных, начиная с верхней части файла:
Record_ID Filename Path Width Height
1437 BreadCakeCooknPie.eps G:\BakedGoods\BreadCakeCooknPie.eps 595 647
1438 CakeChocolateRoses.eps G:\BakedGoods\CakeChocolateRoses.eps 1200 848
1024 *
*
Я импортирую его со следующим кодом T-SQL:
bulk insert item_table from 'Item_Table.txt' with
( FORMATFILE='Item_Table.fmt', FIRSTROW=2)
Поля таблицы:
[Record_ID] [int] NULL,
[Filename] [nvarchar](249) NULL,
[Path] [nvarchar](249) NOT NULL,
[Width] [int] NULL,
[Height] [int] NULL
Есть ли какие-нибудь рецензии? Есть идеи, как исправить ошибку? Есть идеи, как получить файл формата, созданный службами SSIS? Есть другие идеи?
Большое спасибо за рассмотрение моего вопроса.