Vad jag försöker göra är att baserat på ett parametervärde infoga poster i olika tabeller.
Givet ett parametervärde @PeriodType (nvarchar(15)) som kan vara ”Monthly” eller ”Daily” (och eventuellt andra perioder i framtiden).
Jag vill kunna göra följande:
*******************
IF @PeriodType = ’Monthly’
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, etc.)
END
SELECT (Value_1, Value_2, etc.)
FROM SourceTable
*******************
Tyvärr tror jag att jag får ett fel (”Incorrect syntax near the keyword ’END'”) eftersom INSERT och SELECT inte kan separeras (dvs. en av dem inom ett IF och den andra inte) men om någon vet hur man ska göra så skulle jag verkligen uppskatta hjälp. Jag vill inte behöva duplicera koden i SELECT-anvisningen för var och en av periodtyperna eftersom detta skulle vara en plåga att underhålla.
Jag antar att jag skulle kunna skapa en tabellvärderad funktion för att returnera resultaten av Select-anvisningen, men jag skulle föredra att ha all kod inom denna enda lagrade procedur om det är möjligt.