To, co próbuję zrobić, to na podstawie wartości parametru wstawić rekordy do różnych tabel.
Podana wartość parametru @PeriodType (nvarchar(15)), która może być 'Monthly’ lub 'Daily’ (i potencjalnie inne okresy w przyszłości).
Chcę móc wykonać następujące czynności:
*******************
IF @PeriodType = 'Monthly’
BEGIN
INSERT INTO Monthly_Summary_Data (Kolumna_1, Kolumna_2, itd.)
END
IF @PeriodType = 'Daily’
BEGIN
INSERT INTO Daily_Summary_Data (Kolumna_1, Kolumna_2, etc.)
END
SELECT (Wartość_1, Wartość_2, etc.)
FROM SourceTable
*******************
Niestety wydaje mi się, że dostaję błąd („Incorrect syntax near the keyword 'END'”), ponieważ INSERT i SELECT nie mogą być rozdzielone (I.E. jeden z nich w ramach IF, a drugi nie), ale jeśli ktoś wie, jak to zrobić, byłbym naprawdę wdzięczny za pomoc. Nie chcę powielać kodu w instrukcji SELECT dla każdego z typów okresów, ponieważ byłoby to bolesne w utrzymaniu.
Domyślam się, że mógłbym utworzyć funkcję wycenioną w tabeli, aby zwrócić wyniki instrukcji Select, ale wolałbym mieć cały kod w ramach tej pojedynczej procedury przechowywanej, jeśli to możliwe.