如何在另一台服务器上的 SqlServer 2016 中为 FileTable 创建目录。
团队
CREATE TABLE FILES AS FILETABLE
WITH
(
FILETABLE_DIRECTORY = '\\fileserver-1\FILES',
FILETABLE_COLLATE_FILENAME = database_default
)
给出错误:
指定的目录名称“\\fileserver-1\FILES”无效。使用有效的 Windows 目录名称。
FILETABLE_DIRECTORY参数根本没有指定文件表数据将存储的路径。这个设置就是它的作用。
在 SqlServer 中,可以配置对文件表的访问,以便它们通过 UNC-share 可见,其路径如下所示:
路径的第二部分(默认情况下 - MSSQLSERVER)在实例配置器中设置,路径的第三部分在数据库属性中,第四部分仅由FILETABLE_DIRECTORY参数确定,默认情况下与表名匹配。
那些。如果 filestream 是设置为DbNameFilestream的数据库目录,我们使用以下命令创建表
然后它的 UNC 路径看起来像这样
如果由于某种原因需要更改文件表对应目录的名称,则使用FILETABLE_DIRECTORY参数。
在这种情况下,文件表的 UNC 路径将是
至于filestream数据存储在哪里,是由对应的文件组和其中包含的目录决定的(可以有多个)。
如果您希望文件表中的文件位于特定目录中,则需要为文件流数据创建一个专用文件组:
向其中添加所需的目录:
在创建表时,为表的文件流数据指定适当的文件组:
文件组中包含的目录必须位于本地驱动器上,不幸的是,它不能位于网络上。但是,显然,如果可以通过iSCSI将网络存储连接为本地磁盘,那么您就可以使用它。