0

毎日あるサーバーから別のサーバーにストアド プロシージャをコピーする必要がある状況があります。これらのサーバーはリンクされていないため、Transfer SQL object タスクを使用できません。手順をテキストファイルにエクスポートし、テキストファイルから宛先にインポートするようなソリューションを探しています。誰でもこれで私を助けることができますか?これら2つのサーバー間で毎日データを変換するパッケージをすでに持っているので、SSISを介してこれを実行したかったのです。

4

2 に答える 2

0

次のようにできると思います。

  1. SQL タスクの実行: ADO.NET を使用して "sp_helptext YourSPName" を実行します (ストアド プロシージャの定義を単一列テーブルの結果として返します)。「完全な結果セット」を「ResultSet」などのオブジェクト型変数に保存します。

  2. スクリプト タスク: 「ResultSet」を読み取り専用として渡します。「SPConent」タイプの文字列など、別の変数を作成し、readwrite として渡します。スクリプト内で、次のコードを使用して、ストアド プロシージャの定義を文字列に再アセンブルします。

    public void Main()
    {
        // TODO: Add your code here
        var table = ((DataSet) Dts.Variables["ResultSet"].Value).Tables[0];
        string spContent = "";
    
        foreach (DataRow row in table.Rows)
        {
            spContent += row[0];
        }
    
        Dts.Variables["SPContent"].Value = spContent;
        Dts.TaskResult = (int)ScriptResults.Success;
    }
    
  3. SQL タスクの実行: ターゲット データベースのストアド プロシージャを削除します。

  4. SQL タスクの実行: ターゲット データベースに対して "SPContent" から sql コマンドを実行します。

于 2013-04-16T10:24:38.370 に答える