Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Експортирайте данни от SQL Server в CSV файл

За какво си струва, ако всичко, което искате, е да направите заявка и да изхвърлите съдържанието някъде, изглежда, че вършите малко повече работа, отколкото трябва. Сложността може да увеличи предизвикателството при отстраняването на грешки.

Един наистина гол пример за четене на заявка и насочване на изход към файл може да изглежда така:

SqlConnection sqlCon = new SqlConnection("REMOVED");
sqlCon.Open(); 

SqlCommand sqlCmd = new SqlCommand(
    "Select * from products.products", sqlCon);
SqlDataReader reader = sqlCmd.ExecuteReader();

string fileName = "test.csv";
StreamWriter sw = new StreamWriter(fileName);
object[] output = new object[reader.FieldCount];

for (int i = 0; i < reader.FieldCount; i++)
    output[i] = reader.GetName(i);

sw.WriteLine(string.Join(",", output));

while (reader.Read())
{
    reader.GetValues(output);
    sw.WriteLine(string.Join(",", output));
}

sw.Close();
reader.Close();
sqlCon.Close();

Въпреки че може да не изглежда драстично по-кратък от кода, който изброихте, мисля, че е по-опростен и ще бъде по-лесен за отстраняване на грешки, когато е готов. Не съм тествал това, така че не мога да кажа със сигурност, че работи, въпреки че мисля, че е доста близо.

Друго нещо, което си струва да се спомене... нито едно от тях не е истински CSV изход. Трябва да сте сигурни, че боравите с вградени запетаи, връщащи знаци и т.н., ако те са в някой от изходните данни. Това обаче е достатъчно лесно да се направи.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2016:Запазване на резултатите от заявката в CSV файл

  2. UNION ALL гарантира ли реда на резултатния набор

  3. Вземете деня на годината от дата в SQL Server (T-SQL)

  4. Запазване на връзките родител-дете при копиране на йерархични данни

  5. Име на колони за променлива на SQL Server?