Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
Добрый день, помогите/подскажите пожалуйста:
Как запросом в mssql создавать файловые папки с названием на основе строки из определённого поля таблицы
24 дек 18, 13:40    [21772017]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7750
Chernikovkn,

для создания папок используют средства операционной системы, а не SQL Server.
24 дек 18, 18:13    [21772351]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2421
Chernikovkn,

xp_cmdshell 'md c:\ttt'
24 дек 18, 18:16    [21772354]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
Владислав Колосов,

это понятно,
но как быть если нужно создать их 1000 единиц, с именами как в таблице sql?

поэтому и возник сей вопрос
25 дек 18, 07:35    [21772645]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
WarAnt,

это предполагает задание имени папки руками,

мне же нужно чтобы запрос считывал данные из определенного поля и на основание данных каждой строки создавал папку
25 дек 18, 07:37    [21772647]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
PizzaPizza
Member

Откуда:
Сообщений: 365
Chernikovkn
Владислав Колосов,

это понятно,
но как быть если нужно создать их 1000 единиц, с именами как в таблице sql?

поэтому и возник сей вопрос


Это вам надо один раз создать или периодически по 1000 папок создавать?

Если один раз, то делаете экспорт имён папок из базы и формируете bat/bash файл создающий вот это все.
Если периодически, то это очень интересная задача.
25 дек 18, 08:04    [21772654]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
PizzaPizza,

Создать нужно разово - это первоочередная задача,

но потом по мере обновления/добавления информации соответственно добавлять папки
25 дек 18, 08:08    [21772655]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31354
Chernikovkn
WarAnt,

это предполагает задание имени папки руками,
Это предполагает написать пару пяток строк кода, который вызывает xp_cmdshell с именем папки, взятой из таблицы.
25 дек 18, 08:25    [21772657]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
alexeyvg,

вот это и вызывает у меня трудность

слишком мало опыта, но хочется разобраться
25 дек 18, 08:41    [21772659]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
uaggster
Member

Откуда:
Сообщений: 826
Chernikovkn, есть 2 способа, правильный и неправильный.
Точнее - 1 правильный, и куча вариантов неправильного.
Правильный:
Создайте filetable. Это, нормальным образом доступно начиная с 2012+ сервера.
В пределах filetable можно создавать папки обычным insert в эту самую filetable. Соответственно, созданные папки будут доступны в виртуальном сетевом каталоге.
Неправильный:
declare @s nvarchar(max)

declare @folders table (folder nvarchar(255))

insert into @folders
	Values(N'folder1'), (N'folder2'), (N'folder2')

Set @s = (
		Select N'xp_cmdshell ''md c:\' + a.folder +  N''';'
			from @folders a
		For xml path (N''), type
		).value(N'.', N'nvarchar(max)')

exec (@s)

Ну, разумеется, @folders - может быть какой то реальной таблицей.
25 дек 18, 09:48    [21772682]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
uaggster,

Спасибо за помощь, буду пробовать

с помощью filetable я уже создал структуру папок, но этот метод не поддерживает создание этих папок гдето (в сети в моем случае), кроме как локально, а ставить на файловый сервер sql-сервер не хотелось бы
25 дек 18, 10:13    [21772703]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7750
Chernikovkn,

напишите приложение, не мучайте сервер.
25 дек 18, 12:13    [21772816]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Chernikovkn
Member

Откуда:
Сообщений: 7
PizzaPizza,

Я правильно понял Вашу мысль?

Извлекаю запросом из таблицы нужное поле предположим в test.txt,

делаю батник с содержанием: @<«test.txt» (for /f «delims=» %%i in (‘more’) do @md «%%~i»)

подкладываю их соответственно туда где необходимо создать эту кучу папок и запускаю .bat
25 дек 18, 12:25    [21772831]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
PizzaPizza
Member

Откуда:
Сообщений: 365
Chernikovkn,

Красиво конечно. Как одноразовый проект я бы сделал тупее

Select 'md c:\path\' + dirname from t


Вставил бы результат в текстовый файл и переименовал его в bat.
25 дек 18, 20:52    [21773342]     Ответить | Цитировать Сообщить модератору
 Re: Папки sql запросом  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7750
Chernikovkn,

полно же средств в винде - VBS, JS, Pоwer Shell.
26 дек 18, 12:44    [21773753]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить