Posiblemente podrías hacer DELETE
de su tabla de preparación combinada con OUTPUT
cláusula. y INSERT
el resultado de la OUTPUT
cláusula en su tabla principal para hacer todo esto en una declaración atómica.
OUTPUT deleted.* into dashboardtasks
Hay algunas restricciones enumeradas en BOL aunque lo que puede hacer que este enfoque sea inviable.
La tabla de salida no puede:
- Habilitar disparadores definidos en él.
- Participar en ambos lados de una restricción de clave externa.
- Tener restricciones CHECK o reglas habilitadas.
Sintaxis completa para su consulta...
DELETE FROM staggingtasks
OUTPUT DELETED.[tour],
DELETED.tourname,
DELETED.[taskname],
DELETED.[deptdate],
DELETED.[tasktype],
DELETED.[desc],
DELETED.[duedate],
DELETED.[compdate],
DELETED.[comments],
DELETED.[agent],
DELETED.[compby],
DELETED.[graceperiod],
DELETED.completed,
DELETED.canceled
INTO dashboardtasks
WHERE NOT EXISTS(SELECT *
FROM dashboardtasks
WHERE ( staggingtasks.tour = dashboardtasks.tour
and staggingtasks.taskname = dashboardtasks.taskname
and staggingtasks.deptdate = dashboardtasks.deptdate
and staggingtasks.duedate = dashboardtasks.duedate
and staggingtasks.tourname = dashboardtasks.tourname
))