none
SQL Server 2008上にあるDTSパッケージの実行 RRS feed

  • 質問

  • SQL Server 2008上にあるDTSパッケージを実行させようとしていますが、そのパッケージが存在しないというエラーを解決したいと思い、質問させて頂きます。

    [前提]
    1.SQL Server 2008 Workgroup Edition (SP1)を使用しています。
    ・「Microsoft SQL Server 2008 用 Feature Pack」のインストールにより、「SQL Server 2000 DTSランタイム」を使用可能としました。
    ・「Microsoft SQL Server 2005 用 Feature Pack」のインストールにより、「SQL Server 2000 DTSデザイナ」を使用可能としました。

    2.SQL Server 7.0で作成されていたDTSパッケージを、上記SQL Server 2008上へインポートしました。
    ・インポートしたDTSパッケージは、「Microsoft SQL Server Management Studio」のオブジェクト エクスプローラにおいて、[管理]-[レガシ]-[データ変換サービス]に「IMP_MstTBL」という名前で表示されています。
    ・インポートしたDTSパッケージは、「DTS 2000 Package Desiner」上で動作を確認しました。
    (「Excute」ボタン/コマンドにより実行し、正常に処理が行われました。)

    3.SQL Server エージェントのジョブで、上記のDTSパッケージを動作させたいと考えています。
    ・作成したジョブのステップにおいて、「オペレーティング システム (CmdExec)」のコマンドを動作させることで実現可能と考え、「dtsrun /S "サーバ名" /U "sa" /P "パスワード" /N "DTSパッケージの名前"」を「コマンド」欄に設定しました。

    4.ジョブを実行すると正常終了しないため、ジョブに書いていた「dtsrun」コマンドを「コマンド プロンプト」上でテストしてみました。
    ・その結果、「DTSパッケージが存在しない」というエラーが発生してしまいました。

    -----↓テスト時に表示されたメッセージ
    DTSRun:  Loading...

    Error:  -2147217900 (80040E14); Provider Error:  14262 (37B6)
       Error string:  指定した DTS パッケージ ('名前 = 'IMP_MstTBL'; ID.VersionID = {[指定なし]}.{[指定なし]}') は存在しません。
       Error source:  Microsoft OLE DB Provider for SQL Server
       Help file:
       Help context:  0
    -----↑テスト時に表示されたメッセージ

    さらに、「dtexec」コマンドも「コマンド プロンプト」上でテストしてみました。
    (コマンド)
    dtexec /ser "サーバ名" /u "sa" /p "パスワード" /sql "IMP_MstTBL"
    (結果のメッセージ)
    エラー 0xC001000A が発生したため、パッケージ "IMP_MstTBL" を読み込めませんでした。
    説明: 指定されたパッケージを SQL Server データベースから読み込めませんでした。
    ソース:


    [分からないこと]
    dtsrun(またはdtexec)コマンドで、どのようなパラメータを指定すればDTSパッケージを実行させることができるのでしょうか?

    これまでに調べたところでは、DTSパッケージの名前を相対パス指定にしなければならなさそうなのですが。
    (データベース メンテナンス プランをdtexecコマンドで実行させる際、「\maintenance plans\プラン名」というように指定するらしいという情報を目にしました。)


    ご存知の方がいらっしゃるようでしたら、ご教授いただければ幸いです。

    2010年1月8日 5:28

回答

  • 自己解決に至りましたので、一応お知らせさせて頂きます。

    dtsパッケージを一旦削除してインポートからやり直した結果、エラーは解消しました。
    どうやら、保存に失敗したような状態だったのだと思われます。

    ちなみに、下記のコマンドにより動作させることができました。
    dtsrun /S "サーバ名" /U "sa" /P "パスワード" /N "DTSパッケージの名前"

    また、上記のコマンドを「SQL Server エージェント」のジョブに組み込んで、動作させることもできました。

    もし、本件について一緒に考えて頂いていた方がいらっしゃいましたら、ありがとうございました。
    • 回答としてマーク us_800 2010年1月12日 5:12
    • 編集済み us_800 2010年1月12日 5:14 誤字
    2010年1月12日 5:12