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