C#を使用してプログラムでSSISパッケージを作成しています。Visual Studio 2010を使用しており、SQLServer2012用に開発しています。
SQL実行タスクを使用していたことはわかっていましたが、特定のステートメントについては、T-SQLステートメント実行タスクを使用する必要があり、プログラムで作成する方法がわかりません。
通常のSQLタスクを作成する方法は次のとおりです。
Executable exec = parent.Executables.Add("STOCK:TSQLTask");
TaskHost task = exec as TaskHost;
task.Properties["Name"].SetValue(task, name);
task.Properties["Description"].SetValue(task, description);
task.Properties["Connection"].SetValue(task, connMgr.Name);
task.Properties["SqlStatementSource"].SetValue(task, sqlStatement);
作成プロセスは、このMSDNガイドで説明されているプロセスに触発されています。重要なメソッド呼び出しは最初のものです。メソッドヘッダー:
Executable Executables.Add(string moniker)
この特定のページからモニカを取得しました。残念ながら、提供されているリストには、 T-SQLステートメントの実行タスクのモニカが含まれていません。プログラムでそのようなタスクを作成することは、どういうわけか可能でなければならないと私はまだ信じています。
誰かがこれを達成する方法を知っていますか?ありがとう!
William Todd Salzmanの回答のおかげで、次のコマンドを使用して上記のタスクを作成できました。
Executable tsqlExec = p.Executables.Add(typeof(Microsoft.SqlServer.Management.DatabaseMaintenance.DbMaintenanceTSQLExecuteTask).AssemblyQualifiedName);