Atualmente estou escrevendo uma série de triggers " AFTER INSERT, DELETE " que serão usados para sincronizar dados entre duas tabelas idênticas, em instâncias diferentes. O problema que estou tendo agora é fazer a parte DELETE funcionar, devido à forma como a tabela foi projetada.
A tabela é chamada de " MobileUsageReportPackageLog " e o PK é composto pelas seguintes colunas, UserId , DeviceId , PackageNumber .
Agora não tenho certeza de como vincular essa tabela à tabela " excluída ", para garantir que, se um registro for excluído, o gatilho também excluirá o mesmo registro na outra tabela.
Tenho a sensação de que está faltando algo simples, mas se alguém tiver alguma sugestão ou recomendação para uma situação como essa, adoraria ouvi-los.
Desde já, obrigado!
EDIT: Devo mencionar que, como uma combinação, todas as três colunas serão únicas. No entanto, como colunas individuais, elas conterão dados duplicados.
Código a partir de agora:
IF NOT EXISTS (SELECT * FROM inserted) AND EXISTS (SELECT * FROM deleted)
BEGIN
DELETE murpl
FROM [Audits].[dbo].[MobileUsageReportPackageLog] murpl
JOIN deleted del ON murpl.[UserId] = del.[UserId]
JOIN deleted del2 ON murpl.DeviceId = del2.[DeviceId]
JOIN deleted del3 ON murpl.[PackageNumber] = del3.[PackageNumber]
db<>fique aqui