SQL Server 2008中的FileStream介绍

很多朋友并不知道FileStream 这个功能。因为FileStream 一般在安装的时候默认是不启用的,在SQL Server 2008中,引入了Filestream,使用它可以将非机构化大型数据(如文本文档、图像和视频)等以varbinary(max)的形式存储在文件系统中。使用数据库的备份还原功能可以将这些数据一起备份还原。

在选择数据库文件路径那个窗口,有一个标签是"FileStream"。如果在安装的时候你没有启用,安装后可以通过以下设置来开启FileStream 功能。

1. 打开 SQL Server 配置管理器, 在SQL server 服务下找到你要启用的SQL Server服务(默认实例一般是 MSSQLServer),右击该服务,选择属性,在属性窗口你可以看到FileStream 标签,选中" 针对 Transact-SQL 访问启用 FILESTREAM"

2.执行以下命令在ssms

代码如下:

EXEC sp_configure filestream_access_level, 2
RECONFIGURE

3.创建支持FileStream 的数据库

代码如下:

[sql]
  CREATE DATABASE test
  ON
  ( NAME = test_dat,
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testdat.mdf' ),
  FILEGROUP testGroup1 CONTAINS FILESTREAM
  ( NAME = testgroup_dat ,
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testGroup1.ndf')
  LOG ON
  ( NAME = Sales_log,
  FILENAME = 'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\testlog.ldf' ) ;

  当然你也可以用以下脚本,在已存在的数据库添加一个文件组用于支持FileStream.

代码如下:

  [sql]
  ALTER database test
  ADD FILEGROUP FileStreamRecord
  CONTAINS FILESTREAM
  GO
  --Add a file for storing database photos to FILEGROUP
  ALTER database test
  ADD FILE
  (
  NAME= 'FileStreamRecord',
  FILENAME = 'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestFileStreamRecord.ndf'
  )
  TO FILEGROUP FileStreamRecord
  GO

4. 创建可以存储FileStream 的数据表

代码如下:

  CREATE TABLE FileStreamRecording
  [sql]
  (
  ID int,
  RowGuidColumn UNIQUEIDENTIFIER
  NOT NULL UNIQUE ROWGUIDCOL,
  FILESTREAMColumn varbinary(MAX) FILESTREAM
  );
  [sql]
  [sql]

5.使用

代码如下:

[sql]
  INSERT INTO FileStreamRecording VALUES(1, NEWID(), 0x00);
  INSERT INTO FileStreamRecording VALUES(2, NEWID(), 0x00);
  INSERT INTO FileStreamRecording VALUES(3, NEWID(), 0x00);
  GO
  SELECT FILESTREAMColumn.PathName() AS 'PathName' FROM FileStreamRecording;

具体的使用可参考联机帮助或在线帮助。

(0)

相关推荐

  • SQL Server FileStream详解

    FILESTREAM是SQL Server 2008中的一个新特性,允许以独立文件的形式存放大对象数据,而不是以往一样将所有数据都保存到数据文件中.以往在对业务系统的文件进行管理时有两种方法,一种是将文件保存到服务器文件系统中,数据库中只保存了该文件的路径,在使用该文件时应用程序连接到服务器读取文件:另一种是将文件以varbinary(max)或image数据类型保存到SQL Server中.而SQL Server 2008提供了FILESTREAM,结合这两种方式的优点. FILESTREAM

  • SQL Server误区30日谈 第18天 有关FileStream的存储,垃圾回收以及其它

    误区 #18:如下多个有关FileStream的误区 全部错误 18 a)FileStream数据可以在远程存储 不能,由于FileStream数据容器(指的是存放FileStream文件的NTFS文件夹,杜撰出来的术语)必须像数据文件或日志文件那样符合本地存储策略-也就是说,这个数据容器必须放在对于运行SQL Server的Windows Server是本地存储(译者注:也就是在'计算机'里能看到的存储,DAC当然是了,其实SAN这类不直接连接服务器的也算是)访问FileStream数据只要客

  • SQL Server的FileStream和FileTable深入剖析

    互联网时代数据是爆炸式增长,我们常常需要把结构化数据和非结构化数据(如文档,演示文稿,视频,音频,图像)存储在一起.通常有几种方案: 1.在数据库中存储结构化数据,在文件系统中存储非结构化数据,然后数据库里有一个字段记录文件系统的路径,虽然这种方法成本合算,但它引入了额外的复杂度,因为你需要手动去保证跨关系和非关系系统管理事务的完整性. 2.将结构化数据和非结构化数据都存储在数据库中,多年以来,数据库一直都支持存储非关系数据,如二进制大对象,或BLOB,SQL Server称之为varbinar

  • SQL Server 2008中的FileStream介绍

    很多朋友并不知道FileStream 这个功能.因为FileStream 一般在安装的时候默认是不启用的,在SQL Server 2008中,引入了Filestream,使用它可以将非机构化大型数据(如文本文档.图像和视频)等以varbinary(max)的形式存储在文件系统中.使用数据库的备份还原功能可以将这些数据一起备份还原. 在选择数据库文件路径那个窗口,有一个标签是"FileStream".如果在安装的时候你没有启用,安装后可以通过以下设置来开启FileStream 功能. 1

  • SQL Server 2008中的数据表压缩功能详细介绍

    SQL Server 2005 SP2为我们带来了vardecimal功能,当时针对decimail和numeric数据类型推出了新的存储格式--vardecimal.vardecimal存储格式允许 decimal和numeric数据类型的存储作为一个可变长度列. 这项功能使得原来定长的decimal数据在数据文件中以可变长的格式存储,据称这项功能可以为典型的数据仓库节省30%的空间,而SQL Server 2008在这一基础上又进一步增强了数据压缩功能.SQL Server 2008现在支持

  • SQL Server 2008中的代码安全(三) 通过PassPhrase加密

    前言: 在SQL Server 2005和SQL Server 2008之前.如果希望加密敏感数据,如财务信息.工资或身份证号,必须借助外部应用程序或算法.SQL Server 2005引入内建数据加密的能力,使用证书.密钥和系统函数的组合来完成. 与数字证书类似.SQL Server 证书包括公钥和私钥这一对密钥,它们都用来加密和解密数据.SQL Server也拥有创建非对称密钥和对称密钥对象的能力.非对称密钥(asymmetric key)与证书相似,公钥用来加密数据库,私钥用来解密数据.非

  • SQL Server 2008中的代码安全(八)透明加密(TDE)

    当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密.在数据页读入内存时解密.如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问.这几乎是SQL Server2008安全选项中最激动人心的功能了,有了它,我们至少可以将一些初级的恶意窥视拒之见外. 下面的两个例子将展示如何启用和维护透明数据加密. 示例一.启用透明加密(TDE) /********************TDE**************** 3w@live.cn ****************/ U

  • SQL Server 2008中的代码安全(二) DDL触发器与登录触发器

    本文主要 涉及DDL触发器和登录触发器的应用实例. MicrosoftSQL Server 提供两种主要机制来强制使用业务规则和数据完整性:约束和触发器.触发器为特殊类型的存储过程,可在执行语言事件时自动生效.SQL Server 包括三种常规类型的触发器:DML 触发器.DDL 触发器和登录触发器. 1.当数据库中发生数据操作语言 (DML) 事件时将调用 DML 触发器.DML 事件包括在指定表或视图中修改数据的 INSERT 语句.UPDATE 语句或 DELETE 语句.DML 触发器可

  • SQL SERVER 2008数据库引擎详细介绍

    SQL Server 的数据库引擎组件是用于存储.处理数据和保证数据安全的核心服务.数据库引擎提供受控的访问和快速事务处理,以满足企业中要求极高.大量使用数据的应用程序的要求. SQL Server 支持在同一台计算机上最多存在 50 个数据库引擎实例.对于本地安装,必须以管理员身份运行安装程序.如果从远程共享安装 SQL Server,则必须使用对远程共享具有读取和执行权限的域帐户. 高可用性解决方案概述 高可用性解决方案可减少硬件或软件故障造成的影响,保持应用程序的可用性,尽可能地减少用户所

  • SQL Server 2008中SQL之WaitFor使用介绍

    看MSDN:http://msdn.microsoft.com/zh-cn/library/ms187331.aspx 语法为: WAITFOR { DELAY 'time_to_pass' | TIME 'time_to_execute' | [ ( receive_statement ) | ( get_conversation_group_statement ) ] [ , TIMEOUT timeout ]} 以下示例在晚上 10:20 (22:20) 执行存储过程 sp_update_

  • SQL Server 2008中SQL查询语句字段值不区分大小写的问题解决

    一.问题 最近在一个系统的对外接口中,经过测试人员测试,发现登录接口中输入的用户名不区分大小写,经过排查找原因,原来是由于数据库忽略了大小写. 二.解决办法 Select * from Base_UserInfo where User_Account='Admin' COLLATE Chinese_PRC_CS_AI; 1.数据库设置排序规则,如下图所示: 2.SQL语句设置,如下: alter database 你的数据库名 COLLATE Chinese_PRC_CS_AI; 3.字段级设置

  • SQL SERVER 2008 中三种分页方法与比较

    建立表: 复制代码 代码如下: CREATE TABLE [TestTable] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [FirstName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [LastName] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NULL , [Country] [nvarchar] (50) COLLATE Chinese_PRC_

  • SQL Server 2008中的代码安全(六) 对称密钥加密

    证书和非对称密钥使用数据库级的内部公钥加密数据,并且使用数据库级内部私钥解密数据.而对称密钥相对简单,它们包含一个同时用来加密和解密的密钥.困此,使用对称密钥加密数据更快,并且用在大数据时更加合适.尽管复杂度是考虑使用它的因素,但它仍然是一个很好的加密数据的选择. 我们看一组例子: 示例一.创建对称密钥 对称密钥的特性是:在数据库会话中使用它对数据进行加密和解密前必须首先打开. 创建对称密钥使用如下命令:CREATE SYMMETRIC KEY  创建对称密钥.(http://msdn.micr

随机推荐