SQL Server 2008中的FileStream介绍
程序员文章站
2023-02-19 23:08:55
很多朋友并不知道filestream 这个功能。因为filestream 一般在安装的时候默认是不启用的,在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' ) ;
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;
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;
具体的使用可参考联机帮助或在线帮助。
推荐阅读
-
Sql Server中的谓词和运算符
-
SQL Server FOR XML PATH 和 STUFF函数的用法
-
怎么才能限制SQL Server只能让指定的机器连接
-
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
-
精妙的SQL和SQL SERVER 与ACCESS、EXCEL的数据导入导出转换
-
SQL Server 不删除信息重新恢复自动编号列的序号的方法
-
在asp.net中操作sql server数据库的一些小技巧
-
关于TP3.2框架读取Sql server中文字段数据以及处理乱码的一些小心得
-
sql server 索引阐述系列三 表的堆组织
-
sql server通过脚本进行数据库压缩全备份的方法【推荐】