最近在研究在数据库中存储大数据文件看到了FileStream 这个功能记录下来以备后用
FileStream 一般在安装的时候默认是不启用的如果你留意的话在选择数据库文件路径那个窗口有一个标签是FileStream
如果在安装的时候你没有启用安装后可以通过以下设置来开启FileStream 功能
打开 SQL Server 配置管理器 在SQL server 服务下找到你要启用的SQL Server服务(默认实例一般是 MSSQLServer)右击该服务选择属性在属性窗口你可以看到FileStream 标签选中 针对 TransactSQL 访问启用 FILESTREAM
执行以下命令在ssms
EXEC sp_configure filestream_access_level
RECONFIGURE
创建支持FileStream 的数据库
[sql]
CREATE DATABASE test
ON
( NAME = test_dat
FILENAME = C:\Program Files\Microsoft SQL Server\MSSQLMSSQLSERVER\MSSQL\DATA\testdatmdf )
FILEGROUP testGroup CONTAINS FILESTREAM
( NAME = testgroup_dat
FILENAME = C:\Program Files\Microsoft SQL Server\MSSQLMSSQLSERVER\MSSQL\DATA\testGroupndf)
LOG ON
( NAME = Sales_log
FILENAME = C:\Program Files\Microsoft SQL Server\MSSQLMSSQLSERVER\MSSQL\DATA\testlogldf ) ;
当然你也可以用以下脚本在已存在的数据库添加一个文件组用于支持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\MSSQLMSSQLSERVER\MSSQL\DATA\TestFileStreamRecordndf
)
TO FILEGROUP FileStreamRecord
GO
创建可以存储FileStream 的数据表
CREATE TABLE FileStreamRecording
[sql]
(
ID int
RowGuidColumn UNIQUEIDENTIFIER
NOT NULL UNIQUE ROWGUIDCOL
FILESTREAMColumn varbinary(MAX) FILESTREAM
)
[sql]
[sql]
使用
[sql]
INSERT INTO FileStreamRecording VALUES( NEWID() x)
INSERT INTO FileStreamRecording VALUES( NEWID() x)
INSERT INTO FileStreamRecording VALUES( NEWID() x)
GO
SELECT FILESTREAMColumnPathName() AS PathName FROM FileStreamRecording;
具体的使用可参考联机帮助或在线帮助