SQL Server 2012 FileTable 新特性详解
FileTable是基于FILESTREAM的一个特性。有以下一些功能:
•一行表示一个文件或者目录。
•每行包含以下信息:
••file_Stream流数据,stream_id标示符(GUID)。
•用户表示和维护文件及目录层次关系的path_locator和parent_path_locator
•有10个文件属性
•支持对文件和文档的全文搜索和语义搜索的类型列。
•filetable强制执行某些系统定义的约束和触发器来维护命名空间的语义
•针对非事务访问时,SQLServer配置FILESTREAM共享区下公开在FileTable中表示的文件和目录结构
将防火墙配置为进行FILESTREAM访问。
--1.配置实例级别的filestream,取值如下
--0:为此实例禁用FILESTREAM支持。
--1:针对Transact-SQL访问启用FILESTREAM。
--2:针对Transact-SQL和Win32流访问启用FILESTREAM。
EXECsp_configure'filestream_access_level',2
GO
RECONFIGURE
--启动
ALTERDATABASEtestSETFILESTREAM(NON_TRANSACTED_ACCESS=FULL,DIRECTORY_NAME='test')
--添加filestream文件组
ALTERDATABASEtestADDFILEGROUPfilestreamgroupCONTAINSFILESTREAM
GO
ALTERDATABASEtestADDFILE(NAME='fg1',FILENAME='D:\FileStream\fg1')TOFILEGROUPfilestreamgroup
GO
--需要非事务访问,directory_name
SELECTDB_NAME(database_id),non_transacted_access,non_transacted_access_desc,directory_name
FROMsys.database_filestream_options;
GO
CREATETABLEDocumentStoreASFileTable
WITH(
FileTable_Directory='DocumentTable',
FileTable_Collate_Filename=database_default
);
GO
--插入目录
INSERTINTOdbo.DocumentStore(name,is_directory)
SELECT'MyDir01',1;
--在新增目录上,插入文件
SELECT@path=path_locator
FROMdbo.DocumentStore
WHEREname='MyDir01'
SELECT@new_path=@path.ToString()+
CONVERT(VARCHAR(20),CONVERT(BIGINT,SUBSTRING(CONVERT(BINARY(16),NEWID()),1,6)))+'.'+
CONVERT(VARCHAR(20),CONVERT(BIGINT,SUBSTRING(CONVERT(BINARY(16),NEWID()),7,6)))+'.'+
CONVERT(VARCHAR(20),CONVERT(BIGINT,SUBSTRING(CONVERT(BINARY(16),NEWID()),13,4)))+'/'
INSERTINTOdbo.DocumentStore(name,file_stream,path_locator)
SELECTN'空文件.txt',0x,@new_path
SELECTgetpathlocator('\\fanr-pc\SQL2016\test\DocumentTable\1.txt'),*FROMDocumentStore
以上所述是小编给大家介绍的SQLServer2012FileTable新特性详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!