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

  • 一行表示一个文件或者目录。
  • 每行包含以下信息:
    • file_Stream流数据,stream_id标示符(GUID)。
    • 用户表示和维护文件及目录层次关系的path_locator和parent_path_locator
    • 有10个文件属性
    • 支持对文件和文档的全文搜索和语义搜索的类型列。
  • filetable强制执行某些系统定义的约束和触发器来维护命名空间的语义
  • 针对非事务访问时,SQL Server配置FILESTREAM共享区下公开在FileTable中表示的文件和目录结构
--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\1.txt' ), * FROM DocumentStore

  

SQL Server 2012 新特性:FileTable的更多相关文章

  1. SQL Server 2012新特性(1)T-SQL操作FileTable目录实例

    在SQL Server 2008提供FileStream,以借助Windows系统本身的API来强化SQL Server对于非结构化数据的支持后,SQL Server 2012更是推出了像Contai ...

  2. SQL Server 2012 新特性

    --Concat示例 ,null,'RTM') --Format实例 DECLARE @d DATETIME = GETDATE(); SELECT FORMAT( @d, 'd', 'en-US' ...

  3. Sql Server 2012新特性 Online添加非空栏位.

    我们都知道,Sql Server在一个数据量巨大的表中添加一个非空栏位是比较费心的,缺乏经验的DBA或是开发人员甚至可能鲁莽地直接添加导致阻塞相应业务,甚至可能因为资源欠缺造成实例的全局问题.当然这都 ...

  4. SQL Server 2012 新特性:新增和修改函数

    转换函数      1.PARSE      Parse是把字符串类型转化为想要的类型,看看和convert和cast的区别         SELECT PARSE ('2.111111' AS f ...

  5. SQL Server 2012 新特性:服务角色管理

    数据库角色管理,已经可以使用alter role,create role和drop role. 2012增加了几个ddl语句,可以操作服务级别的角色管理,   CREATE SERVER ROLE 用 ...

  6. SQL Server 2012 新特性:其他

    安装期间的设置   为了强化角色分离,不自动在 sysadmin 固定服务器角色中设置 BUILTIN\administrators 和 Local System (NT AUTHORITY\SYST ...

  7. SQL Server 2012 新特性:包含数据库访问数据库引擎

    简单的说就是可以让包含用户访问其他数据库,那么来看看如何配置,并且验证一下:   USE test CREATE USER up1 WITH PASSWORD = 'zhuzhu' SELECT *  ...

  8. 小心SQL SERVER 2014新特性——基数评估引起一些性能问题

    在前阵子写的一篇博文"SQL SERVER 2014 下IF EXITS 居然引起执行计划变更的案例分享"里介绍了数据库从SQL SERVER 2005升级到 SQL SERVER ...

  9. SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer

    SQL Server 2014新特性:五个关键点带你了解Excel下的Data Explorer Data Explorer是即将发布的SQL Server 2014里的一个新特性,借助这个特性讲使企 ...

随机推荐

  1. 轻量级表达式树解析框架Faller

    有话说 之前我写了3篇关于表达式树解析的文章 干货!表达式树解析"框架"(1) 干货!表达式树解析"框架"(2) 干货!表达式树解析"框架" ...

  2. 系统中没有邮件客户端设置autoLink=email会挂掉的问题

    TextView的autoLink属性为我们提供了很大的便利性,当文本中有网址,邮箱或电话的时候可以让我们方便地执行打电话发邮件等动作,不过也有一些问题,比如说设置autoLink包含email属性, ...

  3. Docker私有仓库搭建

    # 环境 系统 Linux 3.10.0-123.9.3.el7.x86_64 CentOS 7.0.1406 (Core) Docker 1.12.0, build 8eab29e 1.获取镜像 私 ...

  4. 苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转

    昨天下午,测试提了一个bug,问题是:在苹果手机Safari无痕浏览模式下系统登录成功但是页面不跳转. 思前想后找了半天没思路,后来经过同事的点拨,说可能是禁用了cookie之类的,反正我也没思路就顺 ...

  5. mysql交互协议解析——mysql包基础数据、mysql包基本格式

    mysql交互协议是开发mysql周边组件常用的协议,如JDBC,libmysql等等. 在此我们要认识到mysql交互协议其实是半双工的交互协议,至于为什么,这里就先挖个小坑,以后再填. 在探讨my ...

  6. 【WPF】运用MEF实现窗口的动态扩展

    若干年前,老周写了几篇有关MEF的烂文,简单地说,MEF是一种动态扩展技术,比如可以指定以某个程序集或某个目录为搜索范围,应用程序在运行时会自动搜索符合条件的类型,并自动完成导入,这样做的好处是,主程 ...

  7. ASP.NET OWIN OAuth:refresh token的持久化

    在前一篇博文中,我们初步地了解了refresh token的用途——它是用于刷新access token的一种token,并且用简单的示例代码体验了一下获取refresh token并且用它刷新acc ...

  8. SQL Server中提前找到隐式转换提升性能的办法

        http://www.cnblogs.com/shanksgao/p/4254942.html 高兄这篇文章很好的谈论了由于数据隐式转换造成执行计划不准确,从而造成了死锁.那如果在事情出现之前 ...

  9. SignalR系列续集[系列6:使用自己的连接ID]

    目录 SignalR系列目录 前言 老规矩,前言~,在此先道个歉,之前的1-5对很多细节问题都讲的不是很详细,也有很多人在QQ或者博客问我一些问题 所以,特开了这个续集.. - -, 讲一些大家在开发 ...

  10. 在iOS中实现一个简单的画板App

    在这个随笔中,我们要为iPhone实现一个简单的画板App. 首先需要指出的是,这个demo中使用QuarzCore进行绘画,而不是OpenGL.这两个都可以实现类似的功能,区别是OpenGL更快,但 ...