AIDE MOI

using System;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using Microsoft.SqlServer.Dts.Runtime;
using System.Data.SqlClient;

public class ClrSSISExecutor
{
[SqlProcedure]
public static SqlInt32 ExecuteSSISPackage(SqlString nomServerSSAS, SqlString REGION, SqlString environment)
{
try
{
// Chaîne de connexion à l'instance SQL Server
string connectionString = "Data Source=moninstanceSQL1;Initial Catalog=SSISDB;User ID=mektaba\\user1;Password=abc1234";

using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand("[catalog].[start_execution]", conn))
{
cmd.CommandType = System.Data.CommandType.StoredProcedure;

// Définition des paramètres
cmd.Parameters.AddWithValue("@package_name", "monpackage");
cmd.Parameters.AddWithValue("@folder_name", "MESPACKAGES");
cmd.Parameters.AddWithValue("@project_name", "MESPACKAGES");
cmd.Parameters.AddWithValue("@use32bitruntime", false);

// Ajout des paramètres utilisateur
SqlCommand paramCmd = new SqlCommand("[catalog].[set_execution_parameter_value]", conn);
paramCmd.CommandType = System.Data.CommandType.StoredProcedure;

void SetParameter(string name, SqlString value)
{
paramCmd.Parameters.Clear();
paramCmd.Parameters.AddWithValue("@execution_id", cmd.Parameters["@execution_id"].Value);
paramCmd.Parameters.AddWithValue("@object_type", 50);
paramCmd.Parameters.AddWithValue("@parameter_name", name);
paramCmd.Parameters.AddWithValue("@parameter_value", value.Value);
paramCmd.ExecuteNonQuery();
}

// Exécution des paramètres
SetParameter("nomServerSSAS", nomServerSSAS);
SetParameter("REGION", REGION);
SetParameter("environment", environment);

// Exécuter le package
int rowsAffected = cmd.ExecuteNonQuery();

if (rowsAffected > 0)
{
SqlContext.Pipe.Send("Le package SSIS s'est exécuté avec succès.");
return new SqlInt32(0); // Succès
}
else
{
SqlContext.Pipe.Send("Échec de l'exécution du package SSIS.");
return new SqlInt32(1); // Échec
}
}
}
}
catch (Exception ex)
{
SqlContext.Pipe.Send("Erreur lors de l'exécution du package SSIS : " + ex.Message);
return new SqlInt32(2); // Erreur
}
}
}