毎日あるサーバーから別のサーバーにストアド プロシージャをコピーする必要がある状況があります。これらのサーバーはリンクされていないため、Transfer SQL object タスクを使用できません。手順をテキストファイルにエクスポートし、テキストファイルから宛先にインポートするようなソリューションを探しています。誰でもこれで私を助けることができますか?これら2つのサーバー間で毎日データを変換するパッケージをすでに持っているので、SSISを介してこれを実行したかったのです。
1464 次
2 に答える
0
次のようにできると思います。
SQL タスクの実行: ADO.NET を使用して "sp_helptext YourSPName" を実行します (ストアド プロシージャの定義を単一列テーブルの結果として返します)。「完全な結果セット」を「ResultSet」などのオブジェクト型変数に保存します。
スクリプト タスク: 「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; }
SQL タスクの実行: ターゲット データベースのストアド プロシージャを削除します。
SQL タスクの実行: ターゲット データベースに対して "SPContent" から sql コマンドを実行します。
于 2013-04-16T10:24:38.370 に答える