SQL Server

Step 1: 启用Filestream功能

  1. 在 “开始” 菜单中,依次指向 “所有程序”、 SQL Server 2016、 “配置工具”,然后单击 “SQL Server 配置管理器”

  2. 在服务列表中,右键单击“SQL Server 服务”,然后单击“打开”。

  3. 在“SQL Server 配置管理器”管理单元中,找到要在其中启用 FILESTREAM 的 SQL Server 实例。

  4. 右键单击该实例,然后单击“属性”。

  5. 在 “SQL Server 属性” 对话框中,单击 “FILESTREAM” 选项卡。

  6. 选中“针对 Transact-SQL 访问启用 FILESTREAM”复选框。

  7. 如果要在 Windows 中读取和写入 FILESTREAM 数据,请单击“针对文件 I/O 流访问启用 FILESTREAM”。 在 “Windows 共享名” 框中输入 Windows 共享的名称。

  8. 如果远程客户端必须访问存储在此共享中的 FILESTREAM 数据,请选择 “允许远程客户端针对 FILESTREAM 数据启用流访问”

  9. 单击 “应用”

  10. 在 SQL Server Management Studio中,单击 “新建查询” 以显示查询编辑器。

  11. 在查询编辑器中,输入以下 Transact-SQL 代码:

     
    EXEC sp_configure filestream_access_level, 2  
    RECONFIGURE  
    
    
  12. 单击 “执行”

  13. 重新启动 SQL Server 服务。

Step 2-1 创建一个新的数据库

-- Create Database
CREATE DATABASE FileTableDB
ON PRIMARY
(Name = FileTableDB,
FILENAME = 'D:FileTableFTDB.mdf'),
FILEGROUP FTFG CONTAINS FILESTREAM
(NAME = FileTableFS,
FILENAME='D:FileTableFS')
LOG ON
(Name = FileTableDBLog,
FILENAME = 'D:FileTableFTDBLog.ldf')
WITH FILESTREAM (NON_TRANSACTED_ACCESS = FULL,
DIRECTORY_NAME = N'FileTableDB');
GO

Step 2-2查看FileStream 功能是否打开

-- Check the Filestream Options
SELECT DB_NAME(database_id),
non_transacted_access,
non_transacted_access_desc
FROM sys.database_filestream_options;
GO

Step 3创建一个新的filetable 

-- Create FileTable Table
USE FileTableDB
GO
CREATE TABLE FileTableTb AS FileTable
WITH
(FileTable_Directory = 'FileTableTb_Dir');
GO

可以像其他sql table 一样使用select 语句去查询

SELECT * FROM FileTableTb

FileTable的数据字典如下表所示

文件属性名称

type

Size

默认

说明

文件系统可访问性

path_locator

hierarchyid

变量

一个标识此项的位置的 hierarchyid 。

此节点在分层 FileNamespace 中的位置。

表的主键。

可通过设置 Windows 路径值来创建和修改。

stream_id

[uniqueidentifier] rowguidcol

 

由 NEWID() 函数返回的值。

FILESTREAM 数据的唯一 ID。

不适用。

file_stream

varbinary(max)

 文件流 (filestream)

变量

NULL

包含 FILESTREAM 数据。

不适用。

file_type

nvarchar(255)

变量

NULL。

文件系统中的创建或重命名操作将从名称填充文件扩展名值。

表示文件的类型。

在你创建全文索引时,可将此列用作 TYPE COLUMN

 file_type 是持久化计算列。

自动计算。 无法设置。

名称

nvarchar(255)

变量

GUID 值。

文件或目录的名称。

可使用 Windows API 创建或修改。

parent_path_locator

hierarchyid

变量

一个标识包含此项的目录的 hierarchyid 。

包含目录的 hierarchyid 。

 parent_path_locator 是持久化计算列。

自动计算。 无法设置。

cached_file_size

bigint

   

FILESTREAM 数据的大小(以字节为单位)。

 cached_file_size 是持久化计算列。

虽然缓存文件的大小会自动保持更新,但在特殊情况下也可能会出现不同步的问题。 若要计算确切的大小,请使用 DATALENGTH() 函数。

creation_time

datetime2(4)

 非空

8 字节

当前时间。

文件的创建日期和时间。

自动计算。 也可以通过使用 Windows API 设置。

last_write_time

datetime2(4)

 非空

8 字节

当前时间。

上次更新文件的日期和时间。

自动计算。 也可以通过使用 Windows API 设置。

last_access_time

datetime2(4)

 非空

8 字节

当前时间。

上次访问文件的日期和时间。

自动计算。 也可以通过使用 Windows API 设置。

is_directory

bit

 非空

1 字节

FALSE

指示行是否表示目录。 此值由系统自动计算,无法设置。

自动计算。 无法设置。

is_offline

bit

 非空

1 字节

FALSE

脱机文件属性。

自动计算。 也可以通过使用 Windows API 设置。

is_hidden

bit

 非空

1 字节

FALSE

隐藏文件属性。

自动计算。 也可以通过使用 Windows API 设置。

is_readonly

bit

 非空

1 字节

FALSE

只读文件属性。

自动计算。 也可以通过使用 Windows API 设置。

is_archive

bit

 非空

1 字节

FALSE

存档属性。

自动计算。 也可以通过使用 Windows API 设置。

is_system

bit

 非空

1 字节

FALSE

系统文件属性。

自动计算。 也可以通过使用 Windows API 设置。

is_temporary

bit

 非空

1 字节

FALSE

临时文件属性。

自动计算

Step 4 打开文件实际存储路径

原文地址:https://www.cnblogs.com/bi-info/p/6548868.html