Det, jeg forsøger at gøre, er baseret på en parameterværdi at indsætte poster i forskellige tabeller.
Givet en parameterværdi @PeriodType (nvarchar(15)), der kan være “Monthly” eller “Daily” (og potentielt andre perioder i fremtiden).
Jeg ønsker at kunne gøre følgende:
*******************
IF @PeriodType = ‘Monthly’
BEGIN
INSERT INTO Monthly_Summary_Data (Column_1, Column_2, osv.)
END
IF @PeriodType = ‘Daglig’
BEGIN
INSERT INTO Daglig_Summary_Data (Kolonne_1, Kolonne_2, osv.)
END
SELECT (Værdi_1, Værdi_2, osv.)
FROM SourceTable
*******************
Derimod tror jeg desværre at jeg får en fejl (“Incorrect syntax near the keyword ‘END'”) fordi INSERT og SELECT ikke kan adskilles (Dvs. den ene af dem inden for en IF og den anden ikke), men hvis nogen ved hvordan man gør, ville jeg sætte stor pris på hjælp. Jeg ønsker ikke at skulle duplikere koden i SELECT-erklæringen for hver af periodetyperne, da dette ville være en smerte at vedligeholde.
Jeg gætter på, at jeg kunne oprette en tabelvurderet funktion til at returnere resultaterne af Select-erklæringen, men jeg ville foretrække at have al koden inden for denne enkelt stored procedure, hvis det er muligt.