powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / FileTable T-SQL
10 сообщений из 10, страница 1 из 1
FileTable T-SQL
    #39956706
Алексаша
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
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
FileTable T-SQL
    #39956724
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексаша,

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

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

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

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

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

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


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

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

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

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


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

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

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


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