I knew that bad things can happen if the C: drive fills but apparently this can cause SQL Server to neither commit or correctly rollback a transaction?
This occured on SQL Server 2008 R2 in a database in simple recovery mode. I ran a script to modify columns (generated by the table designer) in a query window in SSMS. The generated script is in a transaction. During the transaction some non SQL Server batch job ran using the C: drive and filled it. SSMS raised a "can't find table" error in the query window and when I tried to click on anything in Object Explorer a "c drive full error". Jobs failed at the same time with a cannot access db error. The Windows system log reported the c: drive full. The only errors in the SQL Server logs show login errors at the time the c drive filled.
When the dust settled the new table had been created and had been renamed to the original table name and all the indexes were created but all the data was gone. The orignal table was dropped. Looking at the SSMS generated script it appears that nothing rolled back except the table drop and data insert which are in the middle of the script.
I can only guess this indicates that SQL Server behaves unpredictably when the C drive is full even when SQL Server is "installed" on the D drive?
carpe cras