SQL Server 2008中的FileStream介绍
很多朋友并不知道FileStream这个功能。因为FileStream一般在安装的时候默认是不启用的,在SQLServer2008中,引入了Filestream,使用它可以将非机构化大型数据(如文本文档、图像和视频)等以varbinary(max)的形式存储在文件系统中。使用数据库的备份还原功能可以将这些数据一起备份还原。
在选择数据库文件路径那个窗口,有一个标签是"FileStream"。如果在安装的时候你没有启用,安装后可以通过以下设置来开启FileStream功能。
1.打开SQLServer配置管理器,在SQLserver服务下找到你要启用的SQLServer服务(默认实例一般是MSSQLServer),右击该服务,选择属性,在属性窗口你可以看到FileStream标签,选中"针对Transact-SQL访问启用FILESTREAM"
2.执行以下命令在ssms
EXECsp_configurefilestream_access_level,2 RECONFIGURE
3.创建支持FileStream的数据库
[sql] CREATEDATABASEtest ON (NAME=test_dat, FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\testdat.mdf'), FILEGROUPtestGroup1CONTAINSFILESTREAM (NAME=testgroup_dat, FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\testGroup1.ndf') LOGON (NAME=Sales_log, FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\testlog.ldf');
当然你也可以用以下脚本,在已存在的数据库添加一个文件组用于支持FileStream.
[sql] ALTERdatabasetest ADDFILEGROUPFileStreamRecord CONTAINSFILESTREAM GO --AddafileforstoringdatabasephotostoFILEGROUP ALTERdatabasetest ADDFILE ( NAME='FileStreamRecord', FILENAME='D:\ProgramFiles\MicrosoftSQLServer\MSSQL11.MSSQLSERVER\MSSQL\DATA\TestFileStreamRecord.ndf' ) TOFILEGROUPFileStreamRecord GO
4.创建可以存储FileStream的数据表
CREATETABLEFileStreamRecording [sql] ( IDint, RowGuidColumnUNIQUEIDENTIFIER NOTNULLUNIQUEROWGUIDCOL, FILESTREAMColumnvarbinary(MAX)FILESTREAM ); [sql] [sql]
5.使用
[sql] INSERTINTOFileStreamRecordingVALUES(1,NEWID(),0x00); INSERTINTOFileStreamRecordingVALUES(2,NEWID(),0x00); INSERTINTOFileStreamRecordingVALUES(3,NEWID(),0x00); GO SELECTFILESTREAMColumn.PathName()AS'PathName'FROMFileStreamRecording;
具体的使用可参考联机帮助或在线帮助。