SQLBulkCopyは時間をDateTimeに変換できません
-
29-09-2020 - |
質問
独自のODBCデータベースからSQL Serverデータベースにデータベースをコピーするための小さなユーティリティを書いています。SQLBulkCopyを使用してデータをコピーする場合を除き、すべてが機能しています。ほとんどの場合、時間フィールドをSQL DateTimeにコピーしようとしている場合はそうではありません。このエラー:
データソースからのタイプタイムスパンの指定された値は、指定されたターゲット列のタイプDateTimeに変換できません。
SQL Serverでスキーマを作成すると、SQL Serverの日付と時刻のフィールドのDateTime型を作成する必要がありますので、これを回避する方法はありません。私はSqlBulkcopyを使いたかったので、私はすべてのテーブルのすべてのレコードを手動で読み、特別なケースを回ってロジックをラップする必要がありませんでした。私がその道を降りる前に、私がこれを行うことができるもう1つの方法はありますか?ソースデータベースのスキーマやコンテンツ上ではまったく管理されていません。
解決
私はあなたがPre-Server 2008を扱っていると思います.SQL Server 2008には日付と時刻のデータ型があります。
SQL Serverスキーマに一致したデータベース可能なデータベースを使用し、これをソースリーダーからロードし、日付情報(例えば1/1/1900)を追加して日時に適切に変更されます。その後、WriteToServer(DataTable)を使用してください。あなたはそれをすべてデータ型可能に読み込む束を使用することができるので、あなたはそれをバッチでやりたいかもしれません。
SSISを使用できない特定の理由?