Tenho dois servidores sql, no primeiro quero manter os dados dos últimos três meses e no segundo quero manter todos os dados com a finalidade de obter relatórios históricos. Eu sei fazer uma réplica transacional mas não sei replicar apenas as inserções e atualizações, não quero replicar as exclusões.
É possível fazer isso com replicação entre servidores ou você mesmo tem que programar através de triggers?
Nas Propriedades do artigo , você pode definir a publicação para não replicar exclusões.
Na página Propriedades do artigo, role para baixo
Delete delivery format
e altere para "Não replicar..."Observe que, se você não estiver replicando exclusões, corre o risco de um cenário em que uma linha ou atualização apresenta erros e causa problemas. Isso só acontecerá se uma linha excluída tiver um valor que seja reutilizado na chave primária ou em outra restrição exclusiva. Se você estiver usando uma
IDENTITY
coluna para PK (e nenhum outro índice exclusivo nos dados replicados), isso só acontecerá se o ID for propagado novamente ou alguém usarIDENTITY_INSERT
. É um problema mais comum de se encontrar ao usar uma chave natural . Se você prevê que isso seja um problema, você pode colocarinstead of
gatilhos na cópia replicada para converter inserções em upserts