“The database must be online to have a database snapshot.”
You may encounter an error message when you create the Database Snapshot of a database.
You receive this error message if you try to create a Snapshot of a database that is not included in Database Mirroring and is in the NORECOVERY state (Restoring …).
If you think that the database you are trying to create the Database Snapshot is a Mirror database, then you should make sure that you have configured Database Mirroring correctly.
If the database you are trying to create the Database Snapshot is a regular user database that is not included in Database Mirroring, then make sure that this database is not in the NORECOVERY state.