If it was a single statement, either all the changes would have been committed, or none would be. So either all the records that should have been affected would be or none would be affected.

Regarding the third question:

If the changes were committed, and if the data was not persisted to the data file(s), SQL server would do a roll forward, otherwise it will do a rollback when you restart the server. All of that should be transparent to you unless there was data or log file got corrupted.