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

Откуда: KZ
Сообщений: 8
Имеется колонка в таблице, где написаны имена файлов(полный путь), как можно скопировать их (если есть возможность все файлы оптом) в определенную папку в контексте Transact-SQL, без использование курсоров и без помощи других программ.
7 окт 14, 19:02    [16673116]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Transact-SQL -- это не язык манипуляции файлами, встроенных команд "взять список файлов из таблицы и скопировать куда-то" в нем нет.
7 окт 14, 19:05    [16673124]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Bagamol
Member

Откуда: KZ
Сообщений: 8
А проседуру xp_cmdshell ни как не вазможно под эту задачу использовать?
7 окт 14, 19:18    [16673168]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Bagamol
А проседуру xp_cmdshell ни как не вазможно под эту задачу использовать?
Возможно, но она вызывает команды операционной системы, что уже как бы "другая программа".
7 окт 14, 19:19    [16673175]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Bagamol
Member

Откуда: KZ
Сообщений: 8
Тогда можете показать как целую колонку подогнать в xp_cmdshell
7 окт 14, 19:47    [16673276]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Bagamol
Тогда можете показать как целую колонку подогнать в xp_cmdshell
xp_xmdshell ничего не знает ни про какие колонки. Он передает текст команды операционной системе на выполнение и возвращает результат этого выполнения.
7 окт 14, 19:53    [16673287]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Bagamol
Имеется колонка в таблице, где написаны имена файлов(полный путь), как можно скопировать их (если есть возможность все файлы оптом) в определенную папку в контексте Transact-SQL, без использование курсоров и без помощи других программ.


У вас версия SQL какая? На SQL 2012 есть FileTables
http://msdn.microsoft.com/en-us/library/ff929144.aspx
с помощью которого легко реализуется то, что вы хотите без всяких xp_cmdshell
7 окт 14, 20:26    [16673381]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
Bagamol
Тогда можете показать как целую колонку подогнать в xp_cmdshell

Для этого опять же понадобится использование курсора/цикла
7 окт 14, 20:27    [16673385]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
_stas_k_
Member

Откуда:
Сообщений: 49
Bagamol,
сгенерить файл .cmd, в содержащий команды копирования, и выполнить.
7 окт 14, 21:56    [16673559]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
VGalamakh
Member

Откуда: Киев (Альба)
Сообщений: 66
declare @table table(
way varchar(max)
)

insert @table 
Select 'C:\1.txt'
union all
Select 'C:\1.txt'

Select 'copy ' +way+' D:\' from @table
8 окт 14, 18:41    [16678312]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Bagamol
Member

Откуда: KZ
Сообщений: 8
a_voronin,

SQL Server 2008
8 окт 14, 19:22    [16678454]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
Bagamol
Member

Откуда: KZ
Сообщений: 8
Всем спасибо!!! Короче тема закрыта. Ничего нового не стал придумывать курсоры курсоры и еще раз курсоры
8 окт 14, 19:26    [16678466]     Ответить | Цитировать Сообщить модератору
 Re: В контексте Transact-SQL  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4902
Bagamol
a_voronin,

SQL Server 2008


Просто вы делаете что-то странное. Работать с файлами надо в клиентской программе или в SSIS. Там это удобнее и правильнее. Если вам надо складировать документы, может вам Sharepoint нужен. Или переходите на 2012, где можно вставить блоб в таблицу, и он превратиться в файл, или добавить файл в папку и он превратится в запись в таблице.
8 окт 14, 19:29    [16678480]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить