Ce que j’essaie de faire est basé sur une valeur de paramètre pour insérer des enregistrements dans différentes tables.
Sous réserve d’une valeur de paramètre @PeriodType (nvarchar(15)) qui peut être ‘Mensuel’ ou ‘Quotidien’ (et potentiellement d’autres périodes dans le futur).
Je veux pouvoir faire ce qui suit :
*******************
IF @PeriodType = ‘Mensuel’
BEGIN
INSERT INTO Données_Sommaires_Mensuelles (Colonne_1, Colonne_2, etc.)
END
IF @PeriodType = ‘Daily’
BEGIN
INSERT INTO Daily_Summary_Data (Column_1, Column_2, etc.)
END
SELECT (Value_1, Value_2, etc.)
FROM SourceTable
*******************
Malheureusement, je pense que j’obtiens une erreur (« Syntaxe incorrecte près du mot clé ‘END' ») parce que l’INSERT et le SELECT ne peuvent pas être séparés (c’est-à-dire l’un d’entre eux dans un IF et l’autre pas) mais si quelqu’un sait comment faire, j’apprécierais vraiment de l’aide. Je ne veux pas avoir à dupliquer le code dans l’instruction SELECT pour chacun des types de période car cela serait une douleur à maintenir.
Je suppose que je pourrais créer une fonction à valeur de table pour retourner les résultats de l’instruction Select mais je préférerais avoir tout le code dans cette seule procédure stockée si possible.