Your problem is you were deleting from a heap, i.e. your table has no clustered index, so the space was not released, you could solve this in follow ways as described here: DELETE (Transact-SQL)
When rows are deleted from a heap the Database Engine may use row or
page locking for the operation. As a result, the pages made empty by
the delete operation remain allocated to the heap. When empty pages
are not deallocated, the associated space cannot be reused by other
objects in the database. To delete rows in a heap and deallocate
pages, use one of the following methods.
- Specify the TABLOCK hint in
the DELETE statement. Using the TABLOCK hint causes the delete
operation to take an exclusive lock on the table instead of a row or
page lock. This allows the pages to be deallocated. For more
information about the TABLOCK hint, see Table Hints (Transact-SQL).
- Use TRUNCATE TABLE if all rows are to be deleted from the table.
- Create a clustered index on the heap before deleting the rows. You
drop the clustered index after the rows are deleted. This method is
more time consuming than the previous methods and uses more temporary
Empty pages can be removed from a heap at any time by using the ALTER
TABLE REBUILD statement.
So what you can do now is rebuild the table into another database as you have no space in current database. And then create a clustered index on it to avoid the same situation in future