Передача файлов через соединение с SQL Server - PullRequest
1 голос
/ 20 мая 2010

У меня есть текстовый файл на клиентском компьютере, и я хочу переместить его на сервер базы данных (MS SQL 2008), но у меня нет доступа к серверу, кроме как через клиент SQL Server. Могу ли я передать этот файл на сервер, используя клиентское соединение SQL?

Ответы [ 3 ]

2 голосов
/ 20 мая 2010

Да, вы можете сделать это, но не через стандартный SQL. Вам нужно будет написать расширенную хранимую процедуру, которая позволит вам подключаться через клиентское соединение SQL и получать доступ к файловой системе сервера. Но вам придется решать множество проблем с привилегиями пользователей.

0 голосов
/ 20 мая 2010

Если вы хотите сохранить файл в базе данных, это не сложно.

Если вы хотите сохранить в файловую систему, используйте хранимую процедуру CLR, помеченную как имеющую EXTERNAL_ACCESS. В процедуру можно передать параметр BLOB, а процедура, в свою очередь, может записать содержимое BLOB на диск, используя обычные операции FileStream . Если файл очень большой, необходимо предпринять особые меры для предотвращения раздувания памяти.

0 голосов
/ 20 мая 2010

Вы хотите поместить его в базу данных или в файловую систему? Если первое, рассмотрим текст или varchar (max) .

Если последнее, используйте SQL-инъекцию и xp_cmdshell при необходимости. :) На самом деле, в этом случае вам следует обратиться к администратору за более подходящим механизмом передачи.

...