【发布时间】:2017-07-04 15:22:54
【问题描述】:
我有一个在 FileTable 中创建子目录的简单脚本:
INSERT INTO MyFiles (name, is_directory)
VALUES ('SomeFolder', 1, 0)
它工作正常,如果我运行它,SqlServer 会创建子目录“SomeFolder”。 但是,如果我尝试创建嵌套子文件夹,我会遇到错误:
INSERT INTO MyFiles (name, is_directory)
VALUES ('FirstLevel\SecondLevel', 1)
错误信息是:An invalid filename, 'FirstLevel\SecondLevel', caused a FileTable check constraint error. Use a valid Windows filename。
据我所知,我必须为父文件夹添加 parent_path_locator 列,例如:
INSERT INTO MyFiles (name, is_directory, parent_path_locator)
VALUES ('SecondLevel', 1, pathLocatorForFirstLevel)
但我还没有 pathLocatorForFirstLevel 因为 FirstLevel 尚未创建。也许有人知道如何创建具有任意名称的子文件夹?
【问题讨论】:
-
*nix os 使用 '/' 作为文件夹名称分隔符。 Windows 使用“\”。不过,不知道您正在尝试的方法是否有效。
-
@simonatrcl 我尝试使用这两种变体。不幸的是,它不起作用
-
您需要使用 FileTableRootPath() 和 GetPathLocator() 来生成正确的路径吗?参见示例:dba.stackexchange.com/questions/73854/…
标签: sql sql-server filetable