Sql Server FileStream

sqlserer 安装的时候记得勾选filestream;

下面启动:

执行:

EXEC SP_CONFIGURE FILESTREAM_ACCESS_LEVEL,2
RECONFIGURE

重启数据库服务:

创建数据库:

CREATE DATABASE [Filestream]

由于filestream是个特殊用途的文件组,要创建一个文件组指定constains filestream

ALTER DATABASE Filestream
ADD FILEGROUP FG_FT CONTAINS Filestream

添加文件组的时候,物理文件路径不需要手动去创建,手动创建会报错,我是遇到了;

ALTER DATABASE [Filestream]
ADD FILE
(
NAME=N‘Filestream1‘,
FILENAME=N‘F:\Filestream‘
)TO FILEGROUP FG_FT

结果:(自动创建)

filestream.hdr是filestream系统文件,也是filesream的容器包含filestream标头信息; 不要删除

创建一个包含varbinary(max)字段并且指定filestream属性,而且还需要是uniqueidentifier类型并指定rowguidcol属性;

CREATE TABLE Filestre
(
ID UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL UNIQUE,
NAME SYSNAME,
BLOB VARBINARY(MAX) FILESTREAM NULL
)

插入数据第一条是文本文档,第二条是张图片;、

insert INTO Filestre
SELECT NEWID(),‘name1‘,* from  openrowset (bulk N‘F:\COUNTERS.TXT‘,SINGLE_BLOB) AS FILE1
insert INTO Filestre
SELECT NEWID(),‘name2‘,* from  openrowset (bulk N‘F:\20160927.png‘,SINGLE_BLOB) AS FILE1

 

    

物理文件路径自动创建,我们插入两个文件,这个文件我们可以修改文件格式,并可以打开Look;

下面我们测试下还原备份,很奇怪,也正好解决我上面的疑惑,我把文件组文件路径删除了,恢复文件路径自己能够创建;

备份:

BACKUP DATABASE [Filestream] TO DISK=N‘F:\FILE_D.BAK‘

BACKUP LOG [Filestream] TO DISK=N‘F:\FILE_L.BAK‘

删除数据库filestream,删除文件路径,数据文件都没有了;

下面还原数据库:

RESTORE DATABASE [Filestream] from disk=N‘F:\FILE_D.BAK‘ WITH NORECOVERY
RESTORE LOG [Filestream] from disk=N‘F:\FILE_L.BAK‘

所有数据和删除数据库前一模一样;

时间: 2024-08-02 14:12:36

Sql Server FileStream的相关文章

SQL Server FileStream (转载)

以往我们对文件管理有两种方法: 数据库只保存文件的路径,具体的文件保存在文件服务器(NFS)上,使用时,编程实现从文件服务器读取文件: 将文件直接以varbinary(max)或image数据类型保存在数据库中. 上面两种文件存放方式都有问题:第一种方法因为会访问磁盘,故受I/O影响性能不是很好,而且不能很好的进行文件备份:第二种方法虽然解决了文件备份(数据库的备份)问题,但是由于字段的字节数太大,对数据库本身也会造成影响,性能也很低下. 微软在SQL Server 2008推出了一种新的方式

SQL Server FileStream优点与不足

LOB优点: 1.保证大对象的事务一致性. 2.备份与还原包括大数据对象,可以对它进行时点恢复. 3.所有数据都可以使用一种存储与查询环境. LOB不足: 1.大型对象在缓存中占非常大的缓存区. 2.更新大型对象时会产生大量的数据碎片. 3.数据库文件可能变的非常大. FileStream 优点: 1.大型对象存储在文件系统中.数据库中只保存48字节的指针. 2.大型对象数据在事务中与结构数据保持一致. 3.大型对象可以通过 API .T-SQL.NTFS流访问,从而提高性能. 4.大型对象只受

SQL Server 内存中OLTP内部机制概述(三)

----------------------------我是分割线------------------------------- 本文翻译自微软白皮书<SQL Server In-Memory OLTP Internals Overview>:http://technet.microsoft.com/en-us/library/dn720242.aspx 译者水平有限,如有翻译不当之处,欢迎指正. ----------------------------我是分割线---------------

SQL Server 2008 FileStream (摘自本站)

/* 文章主要描述的是SQL Server 2008 FileStream支持,你如果对SQL Server 2008 FileStream支持有兴趣的话你就可以点击以下的文章进行观看了,你如果对其有兴趣的话你就可以点击以下的文章进行观看了. 服务器有一个属性,即指定该服务器是怎么支持文件流的 实际上文件流的出现就是为了解决对大对象的存储中一个矛盾. 对于大对象,第一种方式是存储在数据库里面,这种方式一般使用image字段,或者varbinary(max)来做.好处是可以统一备份,但实际上读取效

sqlserver2008创建数据库 报 Cannot read property is filestream 此属性不可用于sql server 7.0 解决

在创建数据库的时候,报整个错误 Cannot read property is filestream 此属性不可用于sql server 7.0 按照网上的方法  (http://blog.csdn.net/tryfinally/article/details/7207048),在sql配置管理器中,开启filestream  选项, 并且执行 EXEC sp_configure filestream_access_level, 2 RECONFIGURE 问题依然得不到解决. 后来用navic

SQL Server 2008 ---- filestream的启用

create database PhotoRepository on primary ( name =N'PhotoRepository', filename = N'E:\PhotoRepository.mdf', size=5MB, filegrowth=1024KB ), filegroup FS_PhotoRepository contains filestream ( name='FS_PhotoRepository', filename=N'E:\FileGroup\FileStre

SQL Server 使用全文索引进行页面搜索

标签:SQL SERVER/MSSQL SERVER/数据库/DBA/全文索引 概述 全文引擎使用全文索引中的信息来编译可快速搜索表中的特定词或词组的全文查询.全文索引将有关重要的词及其位置的信息存储在数据库表的一列或多列中.全文索引是一种特殊类型的基于标记的功能性索引,它是由 SQL Server 全文引擎生成和维护的.生成全文索引的过程不同于生成其他类型的索引.全文引擎并非基于特定行中存储的值来构造 B 树结构,而是基于要编制索引的文本中的各个标记来生成倒排.堆积且压缩的索引结构.在 SQL

企业云桌面-06-安装数据库服务器Sql Server 2012 With SP1

作者:学 无 止 境 QQ交流群:454544014 注意: <企业云桌面>系列博文是<企业云桌面规划.部署与运维实践指南>的基础部分,因为书中内容涉及非常多,非常全面,所以基础部分将以博文的形式给读者展现,将在书中引用. <企业云桌面规划.部署与运维实践指南>将以某社保中心云桌面为中心,采用VMware Workstation Pro 12.5.2在1台物理机上模拟.读者按书中的步骤一步一步去做,就可以实现.     1. 基本设置 1.1. 服务器基本配置 编号 项

[转] C#实现在Sql Server中存储和读取Word文件

出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换