2017-07-26 24 views
0

を処理していない - 特定のエラー以下、その投げを一括挿入は、私が使用してSQL Serverに一括挿入を使用してデータをロードしようとしています空のファイル

BULK INSERT CUSTOMERE FROM 'F:\\TEMPP\\Invoice_1500645000008_24072017_1127.csv' WITH (FORMATFILE = 'F:\\TEMPP\\Invoice.fmt') 

をしかし、このファイルには、私はヘッダーのみ(手段0のレコードを)持っています: メッセージ4832、レベル16、状態1、行86 バルクロード:予期しないファイルの終了がデータファイルで発生しました。 メッセージ7399、レベル16、状態1、行86 リンクサーバー "(null)"のOLE DBプロバイダー "BULK"がエラーを報告しました。プロバイダは、エラーに関する情報を一切提供しませんでした。 メッセージ7330、レベル16、状態2、行86 リンクサーバー "(null)"のOLE DBプロバイダ "BULK"から行をフェッチできません。

私は、データのロードとロードしていたときに...

たちはエラーなし0記録ファイルを処理することができます。??

おかげ

答えて

1

あなたはのtry..catchがエラーをキャッチするつもりはない、それ以外の場合に、動的クエリを実行する必要があなたはのtry..catchでBULK INSERTを置くことができます。これにより、空のファイルに関する情報もログに記録することができます。スタックオーバーフローへ

BEGIN TRY 
DECLARE @cmd varchar(1000) 
SET @cmd = 'BULK INSERT CUSTOMERE FROM ''F:\TEMPP\Invoice_1500645000008_24072017_1127.csv'' WITH (FORMATFILE = ''F:\TEMPP\Invoice.fmt'') 
EXECUTE (@cmd) 
END TRY 

BEGIN CATCH 
END CATCH 
0
BULK INSERT CUSTOMERE 
    FROM 'F:\TEMPP\Invoice_1500645000008_24072017_1127.csv' 
    WITH 
    (
     FORMATFILE = 'F:\TEMPP\Invoice.fmt' 
    ); 
+0

ようこそ!このコードスニペットをありがとうございます。すぐに役立つかもしれません。適切な説明は、なぜ*これが問題の良い解決策であるかを示すことによってその教育上の価値を大幅に改善し(// meta.stackexchange.com/q/114762)、将来の同様の、しかし、同一ではない質問。説明を追加するためにあなたの答えを[編集]し、どんな制限と前提が適用されるかを示してください。 –

+0

また、リンクサーバーの一括アクセス権を持っている必要があります –

+0

goto sqlサーバーMngスタジオとオブジェクトexplorer_server object_linked server_とプロパティを取得します。 –

関連する問題