Estou tentando criar um procedimento que irá gerar um documento xml de uma determinada tabela enquanto atualiza as informações da referida tabela. Meu procedimento não reconhece o uso da tabela temporária, a menos que eu use uma CREATE TABLE
instrução (ainda não tentei table var's). Idealmente, eu não usaria a CREATE TABLE
instrução caso eu/outro desenvolvedor quisesse adicionar outra(s) coluna(s) no futuro.
Aqui está o meu código atualmente:
UPDATE Audit.ErrorLog SET ErrorReported = 0 OUTPUT inserted.* INTO ##temp
SELECT *
FROM ##temp
FOR XML PATH('Error'), ROOT ('Errors')
DROP TABLE ##temp
E falha com:
Msg 208, Nível 16, Estado 0, Linha 24
Nome de objeto inválido '##temp'.
Não é o fim do mundo se eu tiver que usar uma CREATE TABLE
declaração, mas prefiro não declará-la explicitamente.
Notas:
- Sei que não há tratamento de erros no momento, quero fazer esta seção funcionar primeiro.
- Eu também tentei nomear as colunas em vez de usar
Inserted.*
- Estou definindo propositalmente
ErrorReported = 0
como estou em um ambiente de teste
Você deve criar uma tabela temporária com colunas Audit.ErrorLog e, em seguida, obter os registros de saída.