如何创建支持FILESTREAM的数据库示例探讨

下面是如何创建支持FILESTREAM的数据库示例探讨的完整攻略:

前置条件

在开始之前,请确保你已经安装了 SQL Server,并且确定使用的 SQL Server 版本支持 FILESTREAM 特性,同时需要进行以下配置:

  • 选择启用 FILESTREAM,安装 SQL Server 实例时应勾选 FILESTREAM 特性;
  • 配置 FILESTREAM,启用 Windows 服务并配置 FILESTREAM 实例级别和数据库级别;
  • 确定使用的相应编程助手(如 ADO.NET 或 ODBC)并安装驱动程序。

创建支持 FILESTREAM 的数据库

接下来,你需要按照以下步骤来创建支持 FILESTREAM 的数据库:

  1. 创建一个新的数据库

在 SQL Server Management Studio(或通过 SQL 命令)中创建一个新的数据库。比如,执行以下 SQL 命令:

CREATE DATABASE ExampleDB;
  1. 启用数据库的 FILESTREAM 功能

在创建数据库后,你需要通过以下步骤来启用 FILESTREAM 功能:

  • 使用 ALTER DATABASE 语句,启用 FILESTREAM 功能,并且为 FILESTREAM 分配名字。以下是一个样例语句:
ALTER DATABASE ExampleDB SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = 'ExampleDBFileStream')

其中,DIRECTORY_NAME 表明了你存储 FILESTREAM 数据的文件夹名称,名称需要唯一。

  • 创建 FILESTREAM 文件夹。在这个例子中,你需要在服务器上创建名为 "ExampleDBFileStream" 的文件夹。
  • 授予 SQL Server 读/写 FILESTREAM 文件夹的权限。修改文件夹权限时,你需要确保 SQL Server 服务帐户和 NETWORK SERVICE 帐户都有读/写权限,以便 SQL Server 可以正确地读取和写入 FILESTREAM 数据。以下是一个样例语句:
USE master;
GO
GRANT VIEW SERVER STATE TO ExampleDB;
GRANT ALTER ANY DATABASE TO ExampleDB;
GRANT CONTROL SERVER TO ExampleDB;
GO
USE ExampleDB;
GO
ALTER DATABASE ExampleDB SET FILESTREAM (NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = 'ExampleDBFileStream'); 
GO

注意,你需要将 "ExampleDB" 替换成你自己的数据库名称。

FILESTREAM 数据库的示例操作

接下来,我们将会使用两个示例来演示如何在支持 FILESTREAM 的数据库中进行相应的操作。

示例一:向文件夹 "ExampleDBFileStream" 中添加文件

例如,为名为 "ExampleDocument" 的文件定义一个 FILESTREAM 存储列。以下是一个样例 SQL 命令:

CREATE TABLE ExampleTable
(
    ID INT PRIMARY KEY,
    Document VARBINARY (MAX) FILESTREAM NULL
)
GO

接下来,你可以向数据库添加数据:

INSERT INTO ExampleTable (ID, Document)
SELECT 1, *
FROM OPENROWSET(BULK N'C:\ExampleDocument.docx', SINGLE_BLOB) AS Document

在这个例子中,"C:\ExampleDocument.docx" 是包含要添加的文档的文件的完整路径。在执行该插入语句之后,SQL Server 会自动将文件移动到文件夹 "ExampleDBFileStream" 中。

示例二:从 FILESTREAM 中检索特定文档

以下是一个样例 SQL 命令,它演示了如何从 FILESTREAM 中检索名为 "ExampleDocument" 的文档:

SELECT Document.PathName(), GET_FILESTREAM_TRANSACTION_CONTEXT(), *
FROM ExampleTable
WHERE ID = 1

在执行此脚本之后,文件路径和文件流上下文将返回给客户端,并且客户端可以使用文件路径和文件流上下文来检索数据。

总之,这些是创建支持 FILESTREAM 的数据库的步骤,并演示了如何在其中添加和检索数据。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何创建支持FILESTREAM的数据库示例探讨 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现井字棋详解

    C语言实现井字棋详解 前言 本文主要讲解如何用 C 语言实现一个简单的井字棋游戏,旨在帮助初学者掌握 C 语言基础知识。 游戏规则 井字棋,也称为三连棋,是一个两人对弈的纸笔游戏。游戏开始前,一方用 “X”,另一方用 “O”,轮流在 3×3 的九宫格上落子,先将自己的棋子横、竖、斜地连成一条线者获胜。 实现思路 我们可以将井字棋游戏的实现分为以下几个步骤: …

    C 2023年5月23日
    00
  • C语言中各种运算类型全面总结

    C语言中各种运算类型全面总结 在C语言中,常见的运算类型有整型、浮点型、字符型以及指针类型。本文将对这些运算类型及其运算方式进行详细讲解。 整型运算 C语言中的整型运算指的是对整数进行的运算,常用的整型有int、short和long。整型运算中,常见的运算符有加号+、减号-、乘号*、除号/和取模(取余)运算符%。 int a = 5; int b = 2; …

    C 2023年5月23日
    00
  • linux多线程编程(四)

    Linux多线程编程(四)攻略 前言 本文将讲解在Linux环境下进行多线程编程的基本概念、操作方法和注意事项,通过示例代码演示实现多线程的一些常见用法。 基础知识 线程的创建和销毁 线程是轻量级的进程,一个进程可以包含多个线程。线程的创建和销毁都是通过pthread库中的函数来完成的: #include <pthread.h> int pthr…

    C 2023年5月22日
    00
  • vs2005编译时出现C2859错误该怎么办?

    题目中提到的C2859错误是VS2005编译器出现的一种错误,主要是因为编译器没有足够的内存来处理源代码的语法。 解决方法如下: 方法一: 打开项目工程,找到Solution Explorer中的“.vcxproj”文件。 在文件夹中找到“ClCompile”节点,将“AdditionalOptions”项目的信息更改为“/Zm300”。 重新编译项目。 这…

    C 2023年5月23日
    00
  • C++多线程编程详解

    我会详细讲解C++多线程编程的攻略。对于多线程编程,一般分为以下几个步骤: 1. 包含头文件 要进行多线程编程,需要包含头文件<thread>。 #include <thread> 2. 创建线程 使用std::thread类创建一个线程,并将需要执行的函数作为参数传入。 void my_func() { // 线程要执行的代码 } …

    C 2023年5月22日
    00
  • C++ stringstream格式化输出输入详情

    C++ 的 stringstream 类是一个基于字符串的流,我们可以用它进行格式化输入和输出。在使用 stringstream 进行格式化输出时,可以通过设置类似 printf 函数的格式字符串来控制输出的格式。同时,在使用 stringstream 进行格式化输入时,我们可以根据一个给定的格式字符串来解析输入的字符串数据。接下来,我将详细介绍如何使用 C…

    C 2023年5月23日
    00
  • C语言/C++中如何产生随机数

    产生随机数是计算机编程中常用的操作,C语言和C++编程语言也提供了产生随机数的函数。下面我将会详细讲解在C语言和C++编程语言中如何产生随机数。 在 C 语言中产生随机数 在C语言语言中,使用rand()函数可以产生随机数。这个函数的返回值是随机数。但是,如果不进行特别的设置,rand()函数每次返回的随机数都是相同的。这是因为随机数的生成是基于种子的。如果…

    C 2023年5月23日
    00
  • PHPExcel简单读取excel文件示例

    当我们需要读取excel文件中的数据时,我们可以使用PHPExcel库。下面将详细讲解“PHPExcel简单读取excel文件示例”的完整攻略。 准备 首先需要在项目中引入PHPExcel库,可以使用Composer安装,也可以手动下载和引入。 示例1 下面是一个最简单的读取excel文件第一个工作表中所有数据的示例代码: // 引入PHPExcel req…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部