2

SSMS のインポート ウィザードを使用して保存した SSIS パッケージがあります。インポートでは、テーブルを使用して、フラット ファイルからインポートされたすべての値を保持してから、それらの値を永続的なテーブルにエクスポートします。たとえば、フラット ファイル自体は「mytable」にインポートされます。次に、「mytable」の内容が「mypermanenttable」に転送されます。最近、SSIS パッケージの末尾に drop mytable SQL ステートメントを追加しました。SSIS パッケージを再度実行すると「mytable」が見つからないため、インポートが開始される前に「mytable」を作成する制御フローの「準備 SQL タスク 1」ステップの前に T-SQL ステートメントを追加しました。SSIS パッケージ全体を実行しようとすると、エラーが発生します。ただし、SSIS プロセスのすべてのステップを 1 つずつ実行し、この方法で問題なくパッケージ全体を完成させることができます。テーブル作成の「T-SQLステートメント実行タスク」を実行する前に、「準備SQLタスク1」ステップで「mytable」をチェックする検証があると思います。この問題をどのように修正しますか?

ここに画像の説明を入力

4

2 に答える 2

2

DelayValidationのプロパティをData Flow Task 1に設定しますTrue。検証は、ステージング テーブルの作成後、このタスクを実行する直前に開始されます。

于 2012-09-25T18:48:59.017 に答える
0

SQLタスクを更新して、テーブルが存在するかどうかのチェックを含めてみてください。

IF (NOT EXISTS (SELECT * 
             FROM INFORMATION_SCHEMA.TABLES 
             WHERE TABLE_SCHEMA = 'TheSchema' 
             AND  TABLE_NAME = 'TheTable'))
BEGIN
  --Create table
END
于 2012-09-25T13:57:21.447 に答える