欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在SQL Server中启用FileStream

程序员文章站 2022-06-29 21:16:12
在sql server中启用filestream   最近在研究在中存储大数据文件,看到了filestream 这个功能,记录下来以备后用   file...

在sql server中启用filestream

 

最近在研究在中存储大数据文件,看到了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 的数据库,

 

[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;

 

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