1. ホーム
  2. sql

[解決済み] SSISのエラーです。vs_needsnewmetadata

2022-02-15 21:17:05

質問

現在、Visual Studio 2015(BIDS2008で作成)を使ってETLをすべて更新し、SQL Server 2016(元は2008R2)で稼働する新しいレポーティングサーバーに再展開しているところです。

ETLの1つを更新し、新しいサーバーで実行しようとしているときに、このエラーが発生しました。


<ブロッククオート

パッケージの実行に失敗しました。 ステップに失敗しました。

また、時々このようなエラーが発生することがあります。

ソース ファクトテーブルの読み込み SSIS.Pipeline 説明: "ファクトへコピー テーブル" は検証に失敗し、検証ステータスを返しました。 "VS_NEEDSNEWMETADATA"。


OLEDBデスティネーション、接続文字列を削除して再追加し、メタデータを更新するためにカラムマッピングを開いてみました。また、データフロータスクをすべて再作成しましたが、まだ同じエラーが発生します。

私のローカルマシンでは、パッケージは正常に動作しています。

UPDATEしてください。

どの部分が失敗しているのかを絞り込むために、パッケージを分解し、その一部だけを実行するようにしました。ステージングテーブルへのロードに失敗しているようでしたが、原因は分かりませんでした。

結局、全部を作り直すことにしました。パッケージ全体を再作成した後も、まだうまくいきません。下の画像はサーバーのイベントビューアからのものですが、新しい情報は得られませんでした。

イベントビューアからのパッケージエラー

解決方法を教えてください。

ようやく問題を発見したので、その方法を紹介します。

SSMSから送られてくるエラーメッセージはあまり洞察力に欠けていたので、まずリモートデスクトップを開き、サーバーにログインしました。次に、管理ツール>イベント ビューア、Windows ログ>アプリケーションの順にアクセスして、失敗したイベントから詳細が得られるかどうか確認しました。

まだあまり出ませんでした。

次に行ったのは、パッケージの実行です。 コマンドラインから というのも、メッセージはもっと冗長であるべきだからです。cmdを開いて、パッケージがあるディレクトリに移動して...

DTEXEC /FILE YourPackageName.dtsx

最後に、このエラーメッセージは、パッケージが書き込もうとしたテーブルのカラムが足りないことを示していました。これらのカラムを追加してみると、ほらね。