Tienes que crear ejecutar todas tus sentencias sql dentro de una transacción.
Debes de crear un procedimiento almacenado donde pongas toditos los insert, update, delete y al inicio le pones BEGIN TRAN y al final le pones COMMIT TRAN
Y despues de cada insert, update o delete poner:
Código:
IF (@@error <> 0)
BEGIN
ROLLBACK TRAN
RETURN
END
Con ello si la sentencia tiene un error hace un rollback a las ejecuciones anteriores y sale
Siempre que inicies un BEGIN TRAN debes de hacer un commit tran o rollback tran porque en la transaccion las tablas que hayas afectado se bloquean y nadie más las puede acceder, y si la transacción no termina tus tablas quedarán bloqueadas
Mucha suerte