AIDE MOI
using System;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public class CLRSSISLauncher
{
[SqlProcedure]
public static void LaunchSSIS(SqlString serverName, SqlString folderName, SqlString projectName)
{
if (serverName.IsNull || folderName.IsNull || projectName.IsNull ||
string.IsNullOrWhiteSpace(serverName.Value) ||
string.IsNullOrWhiteSpace(folderName.Value) ||
string.IsNullOrWhiteSpace(projectName.Value))
{
SqlContext.Pipe.Send("Tous les paramètres (serveur, dossier, projet) sont requis.");
return;
}
string connString = $"Server={serverName.Value};Database=SSISDB;Integrated Security=true";
string sql = $@";
DECLARE @execution_id BIGINT;
EXEC [SSISDB].[catalog].[create_execution]
@package_name = N'CalculCategorie.dtsx',
@execution_id = @execution_id OUTPUT,
@folder_name = N'{folderName.Value}',
@project_name = N'{projectName.Value}',
@use32bitruntime = False,
@reference_id = NULL;
EXEC [SSISDB].[catalog].[start_execution] @execution_id;
";
try
{
using (SqlConnection conn = new SqlConnection(connString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.ExecuteNonQuery();
}
}
SqlContext.Pipe.Send($"Le package 'CalculCategorie' a été lancé avec succès sur le serveur {serverName.Value} dans le projet {projectName.Value}.");
}
catch (Exception ex)
{
SqlContext.Pipe.Send("Erreur lors de l’exécution du package SSIS : " + ex.Message);
}
}
}