SQL SERVER 2008 开发系列(十五)

Posted on 2008-09-16 20:40  狂笑人生  阅读(282)  评论(1编辑  收藏  举报

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()

Copyright © 2024 狂笑人生
Powered by .NET 8.0 on Kubernetes