質問: ManagementStudio内のタスクの操作で、テキストファイルからあるテーブルへの取込・インポートを実行しようとしています。 行き先となるテーブルに、日付項目があり当該列の属性はDATE型です。 テキストファイルはExcelからタブ区切りテキストとして保存したもので、これが先に述べた日付項目のせいでインポートが失敗してしまっています。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/4237aca97c6bfd910c2b7c72fefa6be4.png) * 実行しています (エラー) メッセージ 情報 0x402090de: データ フロー タスク 1: ファイル "C:\Users\XXXXXX\Desktop\テーマ一覧.txt" に対して処理されたデータ行の合計数は 879 です。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc02020c5: データ フロー タスク 1: 列 "YMDKAISHI" (18) を列 "YMDKAISHI" (55) に変換しているときに、データ変換に失敗しました。この変換により、状態値 2 と状態を示すテキスト "データが失われる可能性があるため、値を変換できませんでした。" が返されました。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0209029: データ フロー タスク 1: SSIS エラー コード DTS_E_INDUCEDTRANSFORMFAILUREONERROR。エラー コード 0xC020907F により、"データ変換 0 - 0.出力[データ変換の出力].列[YMDKAISHI]" が失敗しました。"データ変換 0 - 0.出力[データ変換の出力].列[YMDKAISHI]" のエラー行の処理により、エラーによる失敗が示されます。ここに示されたコンポーネントのオブジェクトでエラーが発生しました。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。 (SQL Server インポートおよびエクスポート ウィザード) エラー 0xc0047022: データ フロー タスク 1: SSIS エラー コード DTS_E_PROCESSINPUTFAILED。入力 "データ変換の入力" (48) の処理中に、コンポーネント "データ変換 0 - 0" (47) の ProcessInput メソッドがエラー コード 0xC0209029 で失敗しました。このコンポーネントは、ProcessInput メソッドからエラーを返しました。このエラーはコンポーネントに固有のものですが、致命的なエラーであるため、データ フロー タスクの実行は停止されます。このエラーの前に、エラーの詳細が記載されたエラー メッセージが報告されている可能性があります。 (SQL Server インポートおよびエクスポート ウィザード) --- 上記エラーはExcelからタブ区切り出力したテキストファイルの上で 日付項目を 一律 2019-09-01 に変えた状態で、トライアルした結果です。 SQLServerの日付項目があるテーブルに対し、データをインポートする場合、当該列は 手元でどういった表記方法を採用した 日付を収めれば 無事インポートが完了するのでしょうか 日付項目がある場合は インポートできない、なんてことないですよね????
回答: 1年以上前なんでうろ覚えですが似たような事象で私は諦めました。 結局CSVをINSERT文に変換して実行しました。原因を探るよりこっちの方が早いと思いました。 可能であればSSMSのバージョンを下げてみると実行できるかもしれません。 同じファイルでも普通にインポートが通った環境もあったというような話だったと思います。 そもそも新規テーブルとしてインポートしようとしてもできなかったような覚えもあります。 文字列型でインポートを通して適当なテーブルから元のテーブルに入れるという手もある と思います。ですがこれもできなかったと記憶しています。