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
次の 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 によって作成されたフォーマット ファイルを取得する方法はありますか? 他のアイデアはありますか?
私の質問を検討していただきありがとうございます。