Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / FileTable T-SQL / 10 сообщений из 10, страница 1 из 1
13.05.2020, 11:18
    #39956706
Алексаша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Здравствуйте!
MS SQL 2017

Имеется таблица типа FileTable. Много файлов в корневой папке.
Создал в этой таблице запись типа Директория.
Как все файлы имеющиеся на корню переместить в новую папку при помощи скрипта.

Пробовал то что ниже по одному файлу работает а так чтоб одним махом все... неужели только с помощью курсора перебирать все записи нужно?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
declare @reparented_node hierarchyid = '/'
declare @new_parent_node hirerchyid = (select path_locator from FileTable where is_directory=1)
declare @max_child_node hirerchyid  = (select max(path_locator) from FileTable  where path_locator.GetAncestor(1) = new_parent_node)
declare @new_child_node hirerchyid  = @new_parent_nod.GetDescendant(@max_child_node, null)

update FileTable 
set path_locator = path_locator.GetReparentedValue(@reparented_node, @new_child_node)
where path_locator.GetAncestor(1) = '/'
...
Рейтинг: 0 / 0
13.05.2020, 11:42
    #39956724
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Алексаша,

а что Вас пугает?
...
Рейтинг: 0 / 0
13.05.2020, 13:03
    #39956789
Алексаша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Владислав Колосов,

Не то чтобы пугает... Допуская, что одним апдейтом можно, а не в цикле.
...
Рейтинг: 0 / 0
13.05.2020, 13:11
    #39956794
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Алексаша
Владислав Колосов,

Не то чтобы пугает... Допуская, что одним апдейтом можно, а не в цикле.

Включить не транзакционный доступ - тупо в любом файловом менеджере скопировать или переместить файлы.
...
Рейтинг: 0 / 0
13.05.2020, 13:13
    #39956796
Алексаша
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
aleks222,

Принципиально с помощью TSQL
...
Рейтинг: 0 / 0
13.05.2020, 14:06
    #39956843
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Алексаша
aleks222,

Принципиально с помощью TSQL


Ну, если вам шашечки - то какие проблемы проверить собственный код?
Все из declare замечательно переносится в update.

Думаете за вас будут делать?
...
Рейтинг: 0 / 0
13.05.2020, 14:12
    #39956849
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Быстрее всё равно не будет. Разве что религия циклы не позволяет.

Если апдейт обвалится, он же файлы перенесённые обратно начнет переносить. Так и задумано?
...
Рейтинг: 0 / 0
13.05.2020, 17:23
    #39957001
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Владислав Колосов
Быстрее всё равно не будет. Разве что религия циклы не позволяет.

Если апдейт обвалится, он же файлы перенесённые обратно начнет переносить. Так и задумано?


Ну ты простой.
Файлы никуда не переносятся.
Расположение файла = запись в каталоге.
...
Рейтинг: 0 / 0
13.05.2020, 17:38
    #39957010
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
aleks222,

ну, это частный случай. Диск может быть другим, к примеру. Так-то таблица размещения обновляется на диске, если имена - это часть таблицы
...
Рейтинг: 0 / 0
13.05.2020, 19:33
    #39957090
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FileTable T-SQL
Владислав Колосов
Диск может быть другим, к примеру.

Не может.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / FileTable T-SQL / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]