IF OBJECT_ID('#REGISTROS_FISCAIS2', 'U') IS NOT NULL
BEGIN
DROP TABLE #REGISTROS_FISCAIS2
CREATE TABLE #REGISTROS_FISCAIS2 (DATA_VENDA DATE, NOTAS_EMITIDAS INT)
END
@Bernardo, nesse trecho do seu código, as instruções dentro do IF só são executadas se a Tabela #REGISTROS_FISCAIS2 já existir previamente. Então na primeira vez que for executar, ele não vai entrar no IF e nunca vai criar a tal tabela.
Uma forma simples de resolver é deixar a criação da tabela para fora do END do IF. Ou criar um IF com apenas a instrução de DROP, podendo ficar sem a estrutura BEGIN (...) END.
O mesmo deve acontecer nas outras criações de tabelas do seu código completo.
Sou apenas um aluno também, então se algum instrutor puder validar minha resposta, seria ótimo! ;-)
Espero ter ajudado.