zoukankan      html  css  js  c++  java
  • 在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列。 

  • 相关阅读:
    Understanding about Baire Category Theorem
    Isometric embedding of metric space
    Convergence theorems for measurable functions
    Mindmap for "Principles of boundary element methods"
    Various formulations of Maxwell equations
    Existence and uniqueness theorems for variational problems
    Kernels and image sets for an operator and its dual
    [loj6498]农民
    [luogu3781]切树游戏
    [atAGC051B]Three Coins
  • 原文地址:https://www.cnblogs.com/zhangtao/p/2347561.html
Copyright © 2011-2022 走看看