• 在SQL Server 2008中配置文件流(FILESTREAM)


    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列。 

  • 相关阅读:
    通过日期获得星期方法
    去掉标签方法
    获取当前时间方法
    根据身份证计算年龄方法
    查询日志
    Vagrant打造Laravel开发环境(LNMP)
    mysql创建索引以及进程过程中出现的问题
    array_to_sql
    Linux创建快捷方式(链接)命令ln
    Mac搭建PHP Phalcon框架
  • 原文地址:https://www.cnblogs.com/wpf123/p/2052885.html
Copyright © 2020-2023  润新知