Eso parece que el front esta generando un insert con columnas variables segun acuerdo a informacion externa...
aunque no es una practica muy comun...pero bueno...
una alternativa y tal vez la mejor seria, hacer esa diferencia desde el front, ya que es ahi donde sabes cuales columnas se agregaron...
La otra es en sql hacer un paso previo, generando una temporal con la info que se envia (con las nuevas columnas) y luego consultar la estructura de la temporal y asi se podra comparar con las columnas de la tabla fisica..
Código:
-- Crear la temporal, armando un select into en lugar de un insert into...
SELECT 'Value1' V1, 'Value2' V2 INTO #MiTablaTemporal
-- Para consultar las columns de la temporal
SELECT sc.*
FROM tempdb.sys.columns sc
WHERE sc.[object_id] = object_id('tempdb..#MiTablaTemporal')
Saludos!