• The 'WHY' part is still a mystery and one possible reason could be the way SNAPSHOT isolation works. Under snapshot isolation level, your transaction should be able to read a snapshot of the database as of the time when the transaction starts. For the NON-FILESTREAM data, SQL Server implements this by keeping versions of the data in tempdb database.

    When it comes to the FILESTREAM data, which is stored in the NTFS - not in the table - and which may be huge blob files, this may not be a trivial task to implement a similar versioning mechanism.

    That '**could be**' be the reason why SNAPSHOT isolation is not supported with FILESTREAM.

    .