Wat ik probeer te doen is op basis van een parameterwaarde records in verschillende tabellen in te voegen.
Gegeven aan een parameterwaarde @PeriodType (nvarchar(15)) die ‘Maandelijks’ of ‘Dagelijks’ kan zijn (en mogelijk andere perioden in de toekomst).
Ik wil het volgende kunnen doen:
*******************
IF @PeriodType = ‘Maandelijks’
BEGIN
INSERT INTO Monthly_Summary_Data (Column_1, Column_2, etc.)
END
IF @PeriodType = ‘Daily’
BEGIN
INSERT INTO Daily_Summary_Data (Column_1, Column_2, enz.)
END
SELECT (Value_1, Value_2, enz.)
FROM SourceTable
*******************
Ongelukkigerwijs denk ik dat ik een foutmelding krijg (“Incorrect syntax near the keyword ‘END'”) omdat de INSERT en SELECT niet gescheiden kunnen worden (d.w.z. een van de twee binnen een IF en de ander niet) maar als iemand weet hoe ik dit moet doen zou ik hulp erg op prijs stellen. Ik wil niet de code in de SELECT verklaring dupliceren voor elk van de periodetypen, omdat dit een pijn zou zijn om te onderhouden.
Ik denk dat ik een tabel gewaardeerde functie zou kunnen maken om de resultaten van de Select verklaring te retourneren, maar ik zou liever alle code binnen deze enkele opgeslagen procedure hebben als dat mogelijk is.