Как сделать так, чтобы изменение имени папки FileTable отражалось в проводнике Windows?
У меня есть FileTable
в моей базе данных SQL Server 2012, которая содержит как папки, так и файлы. Я хотел переименовать папку, поэтому я выполнил
update MyFileTable set name = 'NewName' where name = 'OldName';
Обновление прошло успешно, и таблица файлов отображает новое имя, когда я выбираю его. Однако, когда я захожу в Windows Explorer и перехожу к соответствующей папке, новое имя не отражается. Я попытался обновить и немного подождать, затем обновить, но папка все еще имеет старое имя. Когда я пытаюсь открыть папку (со старым именем), выдает ошибку, что местоположение недопустимо (или что-то в этом роде), и после нажатия "ОК" папка исчезает.
Однако, если я пытаюсь создать новую папку в том же месте с новым именем, я получаю сообщение об ошибке, что папка уже существует. Когда я нажимаю "ОК", появляется папка с новым именем, а также новая папка с именем "Новая папка" (из-за неудачной попытки создать папку с именем NewName
, После удаления папки New folder
У меня есть желаемый результат: таблица файлов обновляется, и новое имя отражается в проводнике Windows.
Итак, кажется, что файловая таблица работает по большей части, но как я могу убедиться, что изменение имени (или другое изменение), выполненное в запросе или хранимой процедуре, будет отражено в общей папке?
Я погуглил, но не нашел ничего, что обсуждало бы эту проблему.
РЕДАКТИРОВАТЬ:
Я заметил аналогичную вещь при вставке новых записей в таблицу файлов. Новые записи (в данном случае папки) не отображаются в проводнике Windows после создания, даже если они отображаются в таблице файлов. Любопытно, однако, что после нескольких попыток сразу в Windows Explorer появилось пять недавно созданных папок. Так что, может быть, есть только лаг. У кого-нибудь был подобный опыт?
1 ответ
Я недавно пытался понять это сам. После переименования FileTable можно использовать SSMS, чтобы открыть Свойства для FileTable. Существует страница FileTable, где можно вручную обновить имя каталога FileTable.
Команда T-SQL выглядит следующим образом:
ALTER TABLE filetable_name
SET (FILETABLE_DIRECTORY = N'directory_name ');
ИДТИ