• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Transact-SQLのBULK INSERTでエラーをキャッチしたい)

Transact-SQLのBULK INSERTでエラーをキャッチしたい

このQ&Aのポイント
  • Transact-SQLのBULK INSERTでエラーを発生させた場合の処理方法について教えてください
  • BULK INSERTのエラーキャッチ方法やエラー処理の代替方法について教えてください
  • Transact-SQLのBULK INSERTのエラー処理に関して質問があります

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.1

ファイルの読み込み時エラーであれば捕捉できるはずですが、ファイル不存在などの場合は、リンクページの「ステートメントレベルの再コンパイルで発生するエラー (コンパイル後の名前の遅延解決により発生するオブジェクト名の解決エラーなど)」に相当するため、捕捉できないのだと思います。 したがって、以下のように動的クエリにすればよいです。 なぜこれだとOKなのかも、リンクページに書いてあります。 DECLARE @sql varchar(max) BEGIN TRY SET @sql='BULK INSERT TABLE1 FROM ''C:\AAAAA.txt'' WITH (ROWTERMINATOR=''\n'')' EXEC (@sql) END TRY BEGIN CATCH SELECT ERROR_NUMBER(),ERROR_MESSAGE() END CATCH

参考URL:
http://technet.microsoft.com/ja-jp/library/ms175976.aspx
keita_ueue
質問者

お礼

早速なご回答ありがとうございます。 上記、ソースで試したところ無事にエラーキャッチする事ができました。

関連するQ&A