下面是如何创建支持FILESTREAM的数据库示例探讨的完整攻略:
前置条件
在开始之前,请确保你已经安装了 SQL Server,并且确定使用的 SQL Server 版本支持 FILESTREAM 特性,同时需要进行以下配置:
- 选择启用 FILESTREAM,安装 SQL Server 实例时应勾选 FILESTREAM 特性;
- 配置 FILESTREAM,启用 Windows 服务并配置 FILESTREAM 实例级别和数据库级别;
- 确定使用的相应编程助手(如 ADO.NET 或 ODBC)并安装驱动程序。
创建支持 FILESTREAM 的数据库
接下来,你需要按照以下步骤来创建支持 FILESTREAM 的数据库:
- 创建一个新的数据库
在 SQL Server Management Studio(或通过 SQL 命令)中创建一个新的数据库。比如,执行以下 SQL 命令:
CREATE DATABASE ExampleDB;
- 启用数据库的 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技术站