Estou tentando inserir dados e, em seguida, excluídos na mesma consulta.
Estou tentando excluí-lo em pedaços para não causar problemas de LOG:
DECLARE @BatchSize INT
SET @BatchSize = 100000
WHILE @BatchSize <> 0
BEGIN
DELETE (@BatchSize) TABLE1
WHERE LogType = 'LOGTYPE'
AND TABLE1.Id NOT IN (SELECT Id FROM TABLE2)
AND TABLE1.Id IN (SELECT Id FROM DifferentDB..TABLE3)
SET @BatchSize = @@rowcount
END
Mas nessa mesma consulta, gostaria de inserir os dados em um banco de dados secundário primeiro, e depois excluir.
É possível alcançar sem gatilhos? (inserido, excluído...)
Também estou aberto para uma melhor abordagem de exclusão em pedaços, acabei de obter esse pela memória.
Isso é bem fácil de fazer. Já escrevi sobre isso antes aqui: Simplificando os processos de arquivamento
Uma consulta de exemplo seria mais ou menos assim:
Você precisa ter cuidado com OUTPUT, porque se seu destino for um aplicativo cliente ou uma variável de tabela , o plano será forçado a ser serial.