FILESTREAM 功能 (新特点)
/**********************************************************
Author="WZ"
Create Date="2008/9/7"
SQL SERVER 2008 开发系列(十五) FILESTREAM 文件流 (新特点)
**********************************************************/
USE master
GO
--配置文件流访问权限等级
EXEC sys.sp_configure N'filestream access level', N'2'
GO
RECONFIGURE WITH OVERRIDE
GO
--创建文件流演示数据库
CREATE DATABASE FSDemo ON
PRIMARY
(
NAME = FSDemo_Data,
FILENAME = 'D:\数据库\SQL2008\FSDemo_Data.mdf'
),
FILEGROUP FileStreamGroup CONTAINS FILESTREAM
(
NAME = FSDemo_FS,
FILENAME = 'D:\数据库\SQL2008\FSDemo_FS'
)
LOG ON
(
NAME = FSDemo_Log,
FILENAME = 'D:\数据库\SQL2008\FSDemo_Log.ldf'
)
GO
USE FSDemo
GO
--创建演示数据表
CREATE TABLE Contents
(
ID uniqueidentifier ROWGUIDCOL NOT NULL UNIQUE, --唯一键
ContentCaption nvarchar(200) NOT NULL, --标题
[Version] INTEGER, --版本
Content VARBINARY(MAX) FILESTREAM NULL --正文内容
)
GO
--插入测试数据
INSERT INTO Contents VALUES (newid (), 'Content 1', 1, CAST ('FileStream Demo' as varbinary(max)));
GO
--查询
SELECT ID, ContentCaption, [Version], CAST(Content AS varchar(max)) AS Content FROM Contents
--更新
UPDATE Contents SET Content = CAST ('FileStream Demo 1' as varbinary(max));
SELECT ID, ContentCaption, [Version], CAST(Content AS varchar(max)) AS Content FROM Contents
--删除测试数据库
USE master
DROP DATABASE FSDemo
GO
/**********************************************************
文件流 FILESTREAM 编程应用
**********************************************************/
第一步:读取数据表中文件流字段所保存文件的文件名
SELECT Content.PathName() FROM Contents
第二步:开启数据事务上下文,请取文件流中数据,必须要从数据库上下文中获取
SELECT GET_FILESTREAM_TRANSACTION_CONTEXT()