Ich möchte auf der Grundlage eines Parameterwerts Datensätze in verschiedene Tabellen einfügen.
Mit einem Parameterwert @PeriodType (nvarchar(15)), der ‚Monatlich‘ oder ‚Täglich‘ sein kann (und möglicherweise andere Zeiträume in der Zukunft).
Ich möchte Folgendes tun können:
*******************
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
*******************
Leider bekomme ich eine Fehlermeldung („Falsche Syntax in der Nähe des Schlüsselworts ‚END'“), weil INSERT und SELECT nicht getrennt werden können (d.h. eine davon innerhalb eines IF und die andere nicht), aber wenn jemand weiß, wie man das macht, wäre ich wirklich dankbar für Hilfe. Ich möchte den Code in der SELECT-Anweisung nicht für jeden der Periodentypen duplizieren müssen, da dies mühsam zu pflegen wäre.
Ich denke, ich könnte eine tabellenwertige Funktion erstellen, um die Ergebnisse der Select-Anweisung zurückzugeben, aber ich würde es vorziehen, den gesamten Code in dieser einzigen gespeicherten Prozedur zu haben, wenn möglich.