当我想通过SQL Server Management Studio打开文件表内容时,我右键单击数据库,然后尝试单击浏览文件表目录。
但是,正如您在图片上看到的那样,它没有启用。
这是怎么了?有什么建议可以做到这一点吗?
答案 0 :(得分:1)
您需要授予文件流(NON_TRANSACTED_ACCESS)完整访问权限,可以通过SSMS界面或执行查询来完成该操作:
使用界面:
右键单击您的数据库并选择属性,在刚打开的对话框中选择Options
,然后在FileStream部分为其指定目录名称,并为NON_TRANSACTED ACCESS
选择Full
,就像紧跟{{ 3}}
使用查询:
ALTER DATABASE MyDB
SET FILESTREAM(NON_TRANSACTED_ACCESS=FULL, DIRECTORY_NAME='MyDBFileStream')
如果查询执行花费的时间比预期的长,请尝试停止正在使用数据库的应用程序,在我的情况下,由于IIS,我只是停止了IIS服务。
如果遇到如下错误:
FILESTREAM DIRECTORY_NAME 'MyDBFileStream' attempting to be set on database 'MyDB' is not unique in this SQL Server instance. Provide a unique value for the database option FILESTREAM DIRECTORY_NAME to enable non-transacted access.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
这是因为您有另一个具有相同目录名的数据库,请尝试更改其中一个,或者只是将当前数据库的关联文件流目录名更改为其他名称。