日期:2014-05-17  浏览次数:20541 次

急:SQL 2011 中使用FileTable为何报错
过两天要给小组讲下sql 2011中的新特性之一(FileTable),但在做demo时,为何一直报语法错误!

CREATE TABLE DocumentStore AS FileTable WITH FileTable_Directory Document
    FILESTREAM_ON FILESTREAMGroup1;
GO

上面脚本执行报错:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'AS'.
Msg 319, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'with'. If this statement is a common table expression, an xmlnamespaces clause or a change tracking context clause, the previous statement must be terminated with a semicolon.


我的分析:
1、已确信Windows和实例级别上都启用了FileStream
2、查看msdn说,还要针对具体的数据启用FileStream,请问:
 a) 以上错误是否与这个启用有关?
  b) 如何在具体数据库上启用FileStream?(具体步骤)



PS:附下我的尝试
alter database DemoTest SET FILESTREAM_NON_TRANSACT_ACCESS = FULL
//报错:Incorrect syntax near the keyword 'FULL'.

在数据右键属性中也没找到有哪项是设置启用FileStream


------解决方案--------------------
启用FileStream两个步骤:

1)启用服务器实例上的FILESTREAM(文件流)

打开SQL Server配置管理器,在SQL Server服务上点击右键,然后点击打开,在你想要启用FILESTREAM(文件流)的SQL Server实例上点击右键,从右键菜单中选择“属性”,切换到FILESTREAM(文件流)标签,检查“为Transact-SQL访问启用 FILESTREAM(文件流)”选项,你也可以在这个标签页为文件I/O流访问启用FILESTREAM(文件流).

2)为数据库实例启用FILESTREAM(文件流)

执行系统存储过程sp_configure,并设置filestream_access_level参数的值为2,如下:

Code
EXEC sp_configure filestream_access_level, 2
GO

RECONFIGURE
GO

------解决方案--------------------
EXEC sp_configure filestream_access_level, 2
GO

RECONFIGURE
GO
在据库里面执行这两个