Я имею текстовый файл, находящийся на клиентской машине, и хочу переместить ее в сервер базы данных (MS SQL 2008), но у меня нет доступа к серверу кроме через клиент SQL Server. Я могу передать этот файл серверу с помощью соединения SQL-клиента?
Да, вы можете это сделать, но не через стандартный SQL. Вам нужно будет написать расширенную хранимую процедуру, которая позволит вам подключаться через соединение клиента sql и получать доступ к файловой системе сервера. Но вам придется решить множество проблем с правами пользователей.
Вы хотите поместить его в базу данных или в файловую систему? В первом случае рассмотрите текст или varchar (max) .
В последнем случае используйте SQL-инъекцию и xp_cmdshell по мере необходимости. :) Собственно, в этом случае стоит спросить у админа более подходящий механизм передачи.
Если вы хотите сохранить файл в базе данных, то это несложно.
Если вы хотите сохранить файл в файловой системе, используйте хранимую процедуру CLR, помеченную как имеющую EXTERNAL_ACCESS. Вы можете передать процедуре параметр BLOB, а процедура, в свою очередь, может записать содержимое BLOB на диск, используя обычные FileStream операции. Если файл очень большой, то необходимо уделить особое внимание предотвращению раздувания памяти.