You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQL Server 2016 Express LocalDb中创建FileTable?

嘿,我来帮你搞定这个问题!因为SQL Server LocalDB是轻量级的实例,确实没有图形化的SQL Server配置管理器——这也是它精简特性的一部分,所以咱们得用T-SQL脚本来一步步配置FILESTREAM并创建FileTable,具体步骤如下:

在SQL Server 2016 LocalDB中创建FileTable的完整步骤

1. 连接到你的LocalDB实例

首先打开SQL Server Management Studio(或者Visual Studio自带的SQL Server Object Explorer),连接到你的LocalDB实例。随VS2017安装的2016 LocalDB,默认实例名一般是(LocalDB)\MSSQLLocalDB,也可能是(LocalDB)\v13.0,你可以尝试这两个连接字符串。

2. 启用FILESTREAM全局配置

LocalDB没法通过图形界面配置FILESTREAM,所以直接执行以下T-SQL脚本开启高级配置并设置FILESTREAM访问级别:

-- 启用高级配置选项
sp_configure 'show advanced options', 1;
RECONFIGURE;

-- 设置FILESTREAM访问级别为完全访问(3表示允许文件I/O和T-SQL双重访问)
sp_configure 'filestream access level', 3;
RECONFIGURE;

执行完成后,需要重启LocalDB实例让配置生效。打开命令提示符(CMD),运行以下命令(替换成你的实例名):

sqllocaldb stop MSSQLLocalDB
sqllocaldb start MSSQLLocalDB

3. 配置目标数据库的FILESTREAM选项

接下来要给目标数据库开启FILESTREAM支持,分两种情况处理:

情况1:新建带FILESTREAM支持的数据库

CREATE DATABASE FileTableDB
ON PRIMARY (
    NAME = FileTableDB_Primary,
    FILENAME = 'C:\YourCustomPath\FileTableDB.mdf' -- 替换成你自己的本地路径
),
FILEGROUP FileTableFG CONTAINS FILESTREAM (
    NAME = FileTableDB_FS,
    FILENAME = 'C:\YourCustomPath\FileTableDB_FS' -- 这个目录不用提前创建,SQL会自动生成
)
LOG ON (
    NAME = FileTableDB_Log,
    FILENAME = 'C:\YourCustomPath\FileTableDB.ldf' -- 替换成你自己的本地路径
)
WITH FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'FileTableRoot' );

情况2:给现有数据库添加FILESTREAM支持

-- 先启用非事务访问并指定根目录
ALTER DATABASE YourExistingDBName
SET FILESTREAM ( NON_TRANSACTED_ACCESS = FULL, DIRECTORY_NAME = N'YourRootDirectory' );

-- 如果数据库没有FILESTREAM文件组,先添加
ALTER DATABASE YourExistingDBName
ADD FILEGROUP FileTableFG CONTAINS FILESTREAM;

-- 给文件组添加存储文件
ALTER DATABASE YourExistingDBName
ADD FILE (
    NAME = YourDB_FS,
    FILENAME = 'C:\YourCustomPath\YourDB_FS'
) TO FILEGROUP FileTableFG;

4. 创建FileTable

现在一切准备就绪,直接创建FileTable:

USE FileTableDB; -- 切换到你的目标数据库
GO

CREATE TABLE DocumentStore AS FileTable
WITH (
    FileTable_Directory = 'UserDocuments', -- 这个是FileTable对应的子目录名
    FileTable_Collate_Filename = database_default
);

创建完成后,你可以在数据库的FileTables节点下看到它,也能通过文件系统访问——路径格式一般是\\localhost\MSSQLSERVER\v13.0\FileTableDB\FileTableRoot\UserDocuments(根据你的实例名、数据库名调整)。

额外注意点

  • 确保你有指定路径的读写权限,LocalDB默认以当前用户身份运行,所以路径要选当前用户有权限的目录。
  • 如果遇到权限报错,检查LocalDB实例的运行账户(一般是当前登录用户)是否有目标路径的读写权限。

内容的提问来源于stack exchange,提问作者Ali Fathi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:20:41