DTUTILを使用してC#プログラムでSSISパッケージをあるSQLサーバーから別のSQLサーバーにコピーしています。パッケージはMSDBにあります。C#でSSISパッケージ名を取得
string dtutilCmd = "/c DTUTIL /SOURCESERVER " + sourceServer + " /SQL " + myPackage + " /DestServer " + destServer + " /COPY " + myPackage;
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = dtutilCmd;
process.StartInfo = startInfo;
process.Start();
dtutilCmd
文字列の変数はすべて文字列です。問題は、ユーザーがパッケージ名を入力して、大文字と小文字を間違える可能性がある場合です。 MYPACKAGE
と書くと、MYPACKAGE
というデプロイメントが実際に存在していても、元のサーバーに保存する場合はMyPackage
となります。
だから私は何とかパッケージ名をつかみ、それをdtutilCmd
文字列の最後の部分に入れたいと思っています。
これが機能しました。将来の人にとって、コードは完全には機能しません。かなり微調整が必要ですが、解決策は正当です。 – coinbird