O que estou tentando fazer é baseado em um valor de parâmetro para inserir registros em tabelas diferentes.
Dado um valor de parâmetro @PeriodType (nvarchar(15)) que pode ser ‘Mensal’ ou ‘Diário’ (e potencialmente outros períodos no futuro).
Quero poder fazer o seguinte:
*******************
IF @PeriodType = ‘Mensal’
BEGIN
INSERIR INTO Dados_Relatórios_Mensais (Coluna_1, Coluna_2, etc.).)
FIM
IF @PeriodType = ‘Diário’
INÍCIO
INSERIR INTO Dados_Relatórios_Diários (Coluna_1, Coluna_2, etc.)
FIM
SELECT (Valor_1, Valor_2, etc.))
FROM SourceTable
*******************
Unfelizmente penso que estou a receber um erro (“Sintaxe incorrecta perto da palavra-chave ‘END'”) porque o INSERT e SELECT não podem ser separados (I.E. um deles dentro de um IF e o outro não) mas se alguém souber como fazer isto eu realmente apreciaria alguma ajuda. Eu não quero ter que duplicar o código na instrução SELECT para cada um dos tipos de período, pois isso seria uma chatice para manter.
Acho que eu poderia criar uma função de valor de tabela para retornar os resultados da instrução Select, mas eu preferiria ter todo o código dentro deste único procedimento armazenado, se possível.