最近在研究在数据库中存储大数据文件,看到了FileStream 这个功能,记录下来以备后用
FileStream 一般在安装的时候默认是不启用的,如果你留意的话,在选择数据库文件路径那个窗口,有一个标签是“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 的数据库,
- CREATE DATABASE test
- ON
- ( NAME = test_dat,
- FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA estdat.mdf' ),
- FILEGROUP testGroup1 CONTAINS FILESTREAM
- ( NAME = testgroup_dat ,
- FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA estGroup1.ndf')
- LOG ON
- ( NAME = Sales_log,
- FILENAME = 'C:Program FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATA estlog.ldf' ) ;
当然你也可以用以下脚本,在已存在的数据库添加一个文件组用于支持FileStream.
- 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 FilesMicrosoft SQL ServerMSSQL11.MSSQLSERVERMSSQLDATATestFileStreamRecord.ndf'
- )
- TO FILEGROUP FileStreamRecord
- GO
4. 创建可以存储FileStream 的数据表
CREATE TABLE FileStreamRecording
- (
- ID int,
- RowGuidColumn UNIQUEIDENTIFIER
- NOT NULL UNIQUE ROWGUIDCOL,
- FILESTREAMColumn varbinary(MAX) FILESTREAM
- );
- 5.使用
- <pre name="code" class="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;</pre><br>
- <br>
- <p></p>
- <pre></pre>
- <pre name="code" class="sql"></pre><pre name="code" class="sql"><span style="font-family: Arial, Helvetica, sans-serif;">具体的使用可参考联机帮助或在线帮助。</span></pre><br>
- <br>
- <br>
- <p></p>