SQL Server 2012 FileTable 新特性详解

filetable是基于filestream的一个特性。有以下一些功能:

•一行表示一个文件或者目录。

•每行包含以下信息:

• •file_stream流数据,stream_id标示符(guid)。

•用户表示和维护文件及目录层次关系的path_locator和parent_path_locator

•有10个文件属性

•支持对文件和文档的全文搜索和语义搜索的类型列。

•filetable强制执行某些系统定义的约束和触发器来维护命名空间的语义

•针对非事务访问时,sql server配置filestream共享区下公开在filetable中表示的文件和目录结构

将防火墙配置为进行 filestream 访问。

--1.配置实例级别的filestream,取值如下
--0:为此实例禁用 filestream 支持。
--1:针对 transact-sql 访问启用 filestream。
--2:针对 transact-sql 和 win32 流访问启用 filestream。
exec sp_configure 'filestream_access_level', 2
go
reconfigure
--启动
alter database test set filestream (non_transacted_access = full, directory_name ='test' )
--添加filestream文件组
alter database test add filegroup filestreamgroup contains filestream
go
alter database test add file (name = 'fg1', filename ='d:\filestream\fg1' ) to filegroup filestreamgroup
go
--需要非事务访问,directory_name
select db_name (database_id ), non_transacted_access , non_transacted_access_desc, directory_name
from sys. database_filestream_options ;
go
create table documentstore as filetable
with (
filetable_directory = 'documenttable' ,
filetable_collate_filename = database_default
);
go
--插入目录
insert into dbo. documentstore (name , is_directory ) 
select 'mydir01' , 1 ; 
--在新增目录上,插入文件
select @path = path_locator 
from dbo. documentstore 
where name = '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))) + '/' 
insert into dbo. documentstore (name , file_stream , path_locator ) 
select n'空文件.txt' , 0x , @new_path 
select getpathlocator ( '\\fanr-pc\sql2016\test\documenttable.txt' ), * from documentstore 

以上所述是www.887551.com给大家介绍的sql server 2012 filetable 新特性详解,希望对大家有所帮助

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐