2012-05-31 3 views
0

Есть ли способ, чтобы программно использовать утилиты импорта/экспорта SQL Server. В моем веб-приложении я хотел бы импортировать/экспортировать данные из некоторых таблиц базы данных в CSV и наоборот, просто используя инструменты SQL Server. Возможно ли это?Импорт/экспорт данных с SQL Server по коду

ответ

0

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

Чтобы экспортировать данные из таблицы SQL в текстовый файл

BCP Database.TableName out "Location of the text file " -c -S ServerName -T 

Чтобы загрузить данные из плоского файла в таблицу

BCP Database.TableName in "Location of the text file " -c -S ServerName -T 
+0

Как запустить эти команды? Как и любые другие ** «SELECT» ** или ** «UPDATE» ** заявление? Заметьте, что я использую Linq для SQL ... – davioooh

+0

Я не уверен, как это сделать с помощью Linq, но вы можете выполнять приведенные выше команды так же, как вы запускаете хранимую процедуру. Например, строка sql; sql = "BCP Statement" Exec master..xp_cmdshell sql – praveen

0

Ну, так как вы уже используете .net, вы можете просто создать строку подключения, проанализировать ваш файл csv, а затем вставить строки в свои таблицы или использовать другие классы C#. Если вы действительно хотели бы назвать внешним * .exe с помощью C# вы можете сделать следующее:

Process pLight = new Process(); 
      // Redirect the output stream of the child process. 
      pLight.StartInfo.UseShellExecute = false; 
      pLight.StartInfo.CreateNoWindow = false; 
      pLight.StartInfo.RedirectStandardOutput = true; 


      pLight.StartInfo.FileName = "c:\path\to\light.exe"; 

      pLight.StartInfo.Arguments = "-i -d -ext "; 
      pLight.Start(); 
      // Do not wait for the child process to exit before 
      // reading to the end of its redirected stream. 
      // p.WaitForExit(); 
      // Read the output stream first and then wait. 
      string lightoutput = pLight.StandardOutput.ReadToEnd(); 

      pLight.WaitForExit(); 
+0

Я использую Linq для SQL, так что это не так легко импортировать значения из CSV-файлов в объекты ... Можете ли вы предложить мне лучший подход? – davioooh

+0

, возможно, вам захочется взглянуть на выполнение хранимой процедуры в LinqToSQL с помощью пути к файлу csv? http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx –

Смежные вопросы