CREATE PROCEDURE  [C6Mart].[RP_DM_Check_GestioneEmailNOPRO]
(
    @MaxCount INT
)
AS
BEGIN
    SET NOCOUNT ON;
    -- Inizializza la variabile che conterrà la count della query
    DECLARE @CountResult INT;
    -- Esegui la query e ottieni la count
    SELECT @CountResult = COUNT(*)
    FROM C6Mart.gestione_email gest
    WHERE id_elab = (SELECT MAX(id_elab) FROM C6Mart.GESTIONE_EMAIL)
    AND tipo LIKE '%SOLL%';
    -- Controlla se la count è maggiore del valore massimo consentito e restituisci l'errore in caso affermativo
    IF @CountResult > @MaxCount
    BEGIN
        -- Concatenate the error message with the exact count value
        DECLARE @ErrorMessage NVARCHAR(200);
        SET @ErrorMessage = CONCAT('Errore: La count è maggiore di ', CAST(@MaxCount AS NVARCHAR(10)), 
                                   '. Il valore corrente è ', CAST(@CountResult AS NVARCHAR(10)), '.');
        -- Raise the error
        RAISERROR (@ErrorMessage, 16, 1);
        RETURN;
    END
    ELSE
    BEGIN
        -- Display a message indicating no error and include the current count value
        PRINT 'Count <= ' + CAST(@MaxCount AS NVARCHAR(10)) + '. Valore corrente: ' + CAST(@CountResult AS NVARCHAR(10)) + '.';
        -- Or if you prefer, you can use the SELECT statement to return the message as a result set
        -- SELECT 'Count <= ' + CAST(@MaxCount AS NVARCHAR(10)) + '. Valore corrente: ' + CAST(@CountResult AS NVARCHAR(10)) + '.' AS Message;
    END
END