Las transacciones padre-hijo revierten

Tengo un escenario en el que tengo que procesar múltiples.sQL archivos, cada archivo contiene 3-4 consultas de inserción o actualización, ahora cuando falla cualquier consulta en un archivo, lo hagorollback transacción completa significa que todo el archivo se revertirá, y todos los demás archivos ejecutados antes de que ese archivo se confirme, quiero una opción donde el usuario puedarollback transacción completa significa todas las consultas en un archivo ejecutado y todos los archivos ejecutados antes de ese archivo en particular que contiene un error, y si el usuario desea omitir ese archivo en particular con error, simplementerollback archivo único que contiene error, todos los demás archivos se confirmarán, estoy usando Transacción SQL en este momento, noTransactionScope pero obviamente yo también puedo cambiarTransactionScope() si es necesario y posible, actualmente pseudo para mi código (lo que quiero) es el siguiente

Var Files[]
for each (string query in Files)
{
  Execute(Query)
IF(TRUE)
CommitQuery()
Else
result=MBOX("IF You want to abort all files or skip this one")
if(result=abort)
rollbackall()
else
QueryRollBack()
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta