SQL Server 2008推出了一个新的特性叫做文件流(FILESTREAM),它使得基于SQL Server的应用程序可以在文件系统中存储非结构化的数据,例如文档、图片、音频、视频等等。文件流主要将SQL Server数据库引擎和新技术文件系统(NTFS)集成在一起;它主要以varbinary(max)数据类型存储数据。使用这个数据类型,非结构化数据存储在NTFS文件系统中,而SQL Server数据库引擎管理文件流字段和存储在NTFS的实际文件。使用TSQL语句,用户可以插入、更新、删除和选择存储在可用文件流的数据表中的数据。

在SQL Server 2008安装过程中配置和激活文件流

  SQL Server数据库管理员可以在SQL Server 2008安装过程中激活文件流特性。激活文件流的选项在SQL Server 2008建立过程中在数据库引擎配置界面中可以看到。为了激活文件流用于Transact-SQL 访问,数据库管理员需要选择Enable FILESTREAM for Transact-SQL access选项。一旦这个选项激活了,那么其他所有访问控制选项都可以配置了。选择Enable FILESTREAM for file I/O streaming access选项来开启用于文件的Win32流访问。然后你需要提供文件流数据用于访问所存储的windows共享名称。如果你计划允许远程客户端访问服务器上的这个文件流数据,那么选择Allow remote clients to have streaming access to FILESTREAM data控制。在下面的截图里,我们激活了文件流并提供了一个用于允许文件I/O流访问的windows共享名称。

 在SQL Server 2008安装过程中,如果你忘记了激活文件流特性,那么这个特性可以在安装之后通过下面的方法来激活。

使用SQL Server配置管理器来配置和激活文件流

  1. 点击开始菜单| Microsoft SQL Server 2008 |配置工具| SQL Server配置管理器。

  2. 在左边面板中,点击SQL Server 服务,它将在右边面板中列出所有SQL Server 2008相关服务。

  3. 点击你想在其上激活文件流的SQL Server(MSSQLSERVER)服务实例;并右键单击来查看这个服务的属性。

  4. 在SQL Server 属性对话框中,点击FILESTREAM标签页。

  5. 选择FILESTREAM for Transact-SQL access 复选框,它将激活其余选项。

  6. 如果你想提供从windows读和写文件流数据访问那么选择Enable FILESTREAM for I/O streaming access选项并输入windows 共享的名称。

  7. 最后一个选项,Allow remote clients to have streaming access to FILESTREAM data将允许远程客户端访问这个服务器上的文件流数据。

  8. 点击Apply来保存这些改变。

使用TSQL 查询来配置和激活文件流

  1. 在SQL Server 管理套件中,点击新查询窗口并输入下面的TSQL查询: 

      Use Master 
  Go 
  EXEC sp_c  onfigure 'filestream access level', 2 
  Go 
  RECONFIGURE 
  Go

  SQL Server 2008支持3种级别的文件流访问。

  a. 如果这个值是0,那么对于这个实例来说文件流支持是不可用的。

  b. 如果这个值是1,那么对于Transact-SQL访问来说文件流是激活的。

  c. 如果这个值是2,那么对于Transact-SQL和Win32流访问来说文件流是激活的。

  使用GUI在服务器实例级别配置和激活文件流

  1. 使用SQL Server 管理套件连接到SQL Server 2008。

  2. 在对象管理器中,右键单击服务器并选择属性来查看服务器属性窗口。

  3. 在Advanced下面,点击Filestream Access Level 后面的下拉列表框并选择Full access enabled。

  4. 为此用户需要是sysadmin或serveradmin固定服务器角色的成员来改变文件流的默认设置。

  5. 点击OK来保存变更。

完成服务器和数据库实例配置后,接下来是创建存储数据的真实数据库,因为FILESTREAM(文件流)是专门为存储在文件系统上的二进制数据创建的,使用CREATE DATABASE语句时,专门创建一个FILEGROUP标记为流:

CREATE DATABASE FILESTREAMExample
ON
PRIMARY ( 
NAME = FILESTREAMExample_Primary,
FILENAME = 
'c:ProjectsDevXDataFILESTREAMExample.mdf'),
FILEGROUP FILESTREAMGroup CONTAINS  FILESTREAM ( 
NAME = FILESTREAMExample_FileGroup,
FILENAME = 'c:ProjectsDevXDataFILESTREAMExample')
LOG ON ( NAME = FILESTREAMExample_Log,
FILENAME =  
'c:ProjectsDevXDataFILESTREAMExample.ldf')
GO

  接下来,创建一个表,将它的一个列指派为VARBINARY(MAX) FILESTREAM数据类型:

CREATE TABLE Product
(
ProductID INT  NOT NULL  PRIMARY KEY,
Name VARCHAR(50) NOT NULL,
Picture VARBINARY(MAX) FILESTREAM  NULL,
RowGuid UNIQUEIDENTIFIER  NOT NULL  ROWGUIDCOL
UNIQUE DEFAULT NEWID()
)
GO

  前面的表定义指定Picture列为varbinary(max)类型,并启用了FILESTREAM(文件流)属性,注意:凡是有FILESTREAM(文件流)列的表必须要包括一个非空唯一性ROWGUID列。

转载于:https://www.cnblogs.com/zhangtao/articles/2021026.html

在SQL Server 2008中配置文件流(FILESTREAM)相关推荐

  1. SQL SERVER 2008中使用VARBINARY(MAX)进行二进制数据存取的实现方法

    在数据库应用项目开发中,经常会使用一些二进制的图像数据,存储和读取显示图像数据主要采用的是路径链接法和内存流法.路径链接法是将图像文件保存在固定的路径下,数据库中只存储图像文件的路径和名称,此方法数据 ...

  2. SQL Server 2008中的Pivot和UnPivot

    SQL Server 2008中SQL应用系列--目录索引 今天给新成员讲解PIVOT 和 UNPIVOT示例,顺便整理了一下其用法.这是自SQL Server 2005起提供的新功能. 官方示例:h ...

  3. SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008

    SQL Server 2008中Analysis Services的新特性 --深入SQL Server 2008 内容简介: 本书涵盖了SQL Server 2008引入的新功能.作者之一Rober ...

  4. SQL Server 2008中原生的分层数据类型:hierarchyid

    SQL Server 2008中SQL应用系列--目录索引 如果是在SQL 2000中,我们需要读取分层结构数据时,不得不借助递归.在SQL server 2005中,我们可以使用CTE,当然,好的数 ...

  5. SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete)

    SQL Server 2008中SQL增强之三:Merge(在一条语句中使用Insert,Update,Delete) SQL Server 2008提供了一个增强的SQL命令Merge,用法参看MS ...

  6. mysql中的merge into,SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字)...

    SQL Server 2008中利用merge into关键实现insert/update自动匹配(类似于MySQL中的For Update关键字) 语法请参考: 按照语法编写语句 DECLARE @ ...

  7. 在SQL Server 2008中调用.net,dll

    T-SQL的在执行普通的查询的时候是很高效的,但是在执行循环,判断这样的语句的时候效率就不那么的高了.这时可以借助CLR了,我们可以在SQL Server 2008中扩展C#程序来完成循环等过程式的查 ...

  8. SQL Server 2008中的代码安全(四):主密钥

    SQL Server 2008中SQL应用系列--目录索引 在SQL Server中的加密由层次结构形式进行处理以提供多级别的安全.SQL Server包含两个用于加密数据的密钥类型.如下图: 1.服 ...

  9. 使用一下SQL Server 2008中的新日期函数

    在我们开始讨论SQL Server 2008中新的日期数据类型之前,先来回顾一下SQL Server 2005中以及更老版本中提供的两种日期数据类型,这些旧的数据类型是DATETIME和SMALLDA ...

最新文章

  1. 【工具】公网临时大文件传输工具,文件发送,高速文件传输方法
  2. 20141203图片Base64编码与解码
  3. 免密登录堡垒机和服务器
  4. neo4j merge
  5. 判断response.data是否为空
  6. 第五届电气学院比赛之XXX——数码管显示模块
  7. jar类型文件图标不显示_显示的JAR文件
  8. 顺序表 数据结构 顺序表基本操作 C语言实现 顺序表详解
  9. base64转码原理
  10. LabVIEW调用声卡开发音频测试系统
  11. 选择排序为什么是不稳定的?
  12. 为 Kodi 自制遥控器
  13. 2021年度训练联盟热身训练赛第八场 自我总结
  14. 快圣诞节了,用Python 送你一棵圣诞树
  15. LaTex使用技巧19:罗马数字输入(大写和小写)
  16. RSA-详解dp泄漏
  17. 筛选后系列填充_不会用Excel做数据筛选,老板叼的你没话说!
  18. 服务器在无盘网吧的现在与将来(3)
  19. java丐帮_java多线程学习笔记(三)
  20. 程序设计思想——算法

热门文章

  1. 如何用asp.net向其他服务器post一条信息
  2. WMI技术介绍和应用——查询系统信息
  3. 深度学习中的Dropout简介及实现
  4. C++11中头文件thread的使用
  5. 设计模式之状态模式(State)摘录
  6. 【FFmpeg】FFmpeg中操作目录、文件的接口
  7. 丰田chr优惠5万_别克昂科威优惠5万?是否该考虑入手了呢?
  8. java在己有的类创子类怎么创_如何使用Java创建自己的异常子类
  9. java c++的区别_Java语言与C、C++之间的区别?
  10. oracle9i安装不上,终于成功安装oracle9i了(Cent OS 4.0+oracle9204)