Assuming that you are using JDBC for putting data into any ACID compliant database (MSSQL, Sybase, Oracle etc), you are implicitly or explicitly adding BEGIN TRAN to INSERT statement in a distributed transaction. MSSQL does not know or care where data is coming from. If your connection completes OK a COMMIT TRAN will be sent and that will tell MSQL to commit transaction. If yoy kill Spark transaction before MSSQL receive COMMIT TRAN, the transaction will be rolled back.
The only option is that if you don't care about full data getting to MSSQL,to break your insert into chunks at source and send data to MSSQL in small batches. In that way you will not lose all data in MSSQL because of rollback.