我的SQL Server 2012数据库中有FileTable
,其中包含文件夹和文件。我想重命名一个文件夹,所以我执行了
update MyFileTable set name = 'NewName' where name = 'OldName';
更新成功,当我从中选择时,文件表会反映新名称。但是,当我进入Windows资源管理器并导航到相应的文件夹位置时,不会反映新名称。我尝试刷新并稍等,然后刷新,但文件夹仍然有旧名称。当我尝试打开文件夹(使用旧名称)时,它会给出一个错误,指出该位置无效(或出现这种情况),并且在单击“确定”后,该文件夹将消失。
但是,如果我尝试使用新名称在同一位置创建新文件夹,则会收到该文件夹已存在的错误。当我单击“确定”时,会出现带有新名称的文件夹,以及名为“新文件夹”的新文件夹(由于尝试创建名称为NewName
的文件夹失败。删除文件夹后{ {1}},我得到了所需的结果:文件表已更新,新名称反映在Windows资源管理器中。
因此,似乎文件表大部分都在工作,但是如何确保在查询或存储过程中执行的名称更改(或其他更改)将反映在文件共享中?
我已经搜索过,但没有找到任何讨论此问题的内容。
编辑:
在将新记录插入文件表时,我注意到了类似的事情。新记录(本例中为文件夹)在创建后不会显示在Windows资源管理器中,即使它们确实出现在文件表中。然而,奇怪的是,在尝试不同的事情后,最近在Windows资源管理器中出现了五个最近创建的文件夹。所以,也许只是一个滞后。有没有人有类似的经历?
答案 0 :(得分:0)
我最近试图自己解决这个问题。重命名FileTable后,可以使用SSMS打开FileTable的属性。有一个FileTable页面,可以手动更新FileTable目录名称。
T-SQL命令如下:
ALTER TABLE filetable_name
SET(FILETABLE_DIRECTORY = N' directory_name');
GO